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;
}