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