int FUN_004033ac(undefined4 param_1,undefined4 param_2,uint param_3)
{
int *piVar1;
ssize_t sVar2;
uint __nbytes;
__fd_mask *__buf;
int iVar3;
timeval local_4c8;
undefined4 local_4c0;
int local_4bc;
int local_4b8;
undefined4 local_4b4;
undefined4 local_4b0;
uint local_4ac [32];
undefined4 auStack_42c [257];
local_4c0 = 0;
local_4b4 = param_1;
local_4b0 = param_2;
local_4bc = sobj_new();
iVar3 = 0;
local_4b8 = sobj_new();
do {
while( true ) {
if (((param_3 == 0) || (local_4bc == 0)) || (__buf = (__fd_mask *)local_4ac, local_4b8 == 0))
goto LAB_00403530;
do {
*__buf = 0;
__buf = __buf + 1;
} while (__buf != auStack_42c);
local_4ac[0] = local_4ac[0] | 1;
local_4c8.tv_usec = 0;
local_4c8.tv_sec = 5;
iVar3 = select(1,(fd_set *)local_4ac,(fd_set *)0x0,(fd_set *)0x0,&local_4c8);
if (iVar3 < 0) break;
if (iVar3 == 0) goto LAB_00403528;
__nbytes = param_3;
if (0x400 < param_3) {
__nbytes = 0x400;
}
sVar2 = read(0,__buf,__nbytes) //possible issue identified - semgrep
if (sVar2 < 0) goto LAB_00403528;
if (sVar2 == 0) goto LAB_00403530;
param_3 = param_3 - sVar2;
FUN_00402ef0(&local_4c0,auStack_42c,sVar2);
}
piVar1 = __errno_location();
} while (*piVar1 == 4);
LAB_00403528:
iVar3 = -1;
LAB_00403530:
FUN_00402ef0(&local_4c0,0,0);
if (local_4bc != 0) {
sobj_del();
}
if (local_4b8 != 0) {
sobj_del();
}
return iVar3;
}