void FUN_00402110(uint param_1,FILE *param_2)

{
  __fd_mask *p_Var1;
  int iVar2;
  size_t sVar3;
  __fd_mask *p_Var4;
  uint uVar5;
  __fd_mask local_a8 [32];
  undefined4 uStack_28;
  
  p_Var4 = local_a8 + (param_1 >> 5);
  uVar5 = 1 << (param_1 & 0x1f);
  p_Var1 = local_a8;
  while( true ) {
    do {
      do {
        *p_Var1 = 0;
        p_Var1 = p_Var1 + 1;
      } while (p_Var1 != &uStack_28);
      *p_Var4 = *p_Var4 | uVar5;
      iVar2 = select(param_1 + 1,(fd_set *)local_a8,(fd_set *)0x0,(fd_set *)0x0,(timeval *)0x0);
      p_Var1 = local_a8;
    } while ((iVar2 < 0) || ((uVar5 & *p_Var4) == 0));
    sVar3 = read(param_1,&DAT_00422560,0x400)   //possible issue identified - semgrep
    if ((int)sVar3 < 1) break;
    if ((&DAT_0042255f)[sVar3] == '\0') {
      sVar3 = strlen(&DAT_00422560);
      fwrite(&DAT_00422560,1,sVar3,param_2);
      return;
    }
    fwrite(&DAT_00422560,1,sVar3,param_2);
  }
  return;
}