undefined4 FUN_004047d4(undefined4 param_1,undefined4 param_2,uint param_3,char *param_4)

{
  __fd_mask *p_Var1;
  int iVar2;
  int *piVar3;
  ssize_t sVar4;
  uint __nbytes;
  undefined4 uVar5;
  timeval local_5e8;
  uint local_5e0 [32];
  int local_560;
  char *local_55c;
  size_t local_558;
  undefined4 local_554;
  undefined4 local_550;
  undefined4 local_448;
  int local_444;
  int local_440;
  int local_43c;
  int local_438;
  undefined1 auStack_42c [1028];
  
  memset(&local_560,0,0x134)   //possible issue identified - semgrep
  local_55c = param_4;
  local_558 = strlen(param_4);
  local_554 = param_1;
  local_550 = param_2;
  local_444 = sobj_new();
  local_440 = sobj_new();
  local_43c = sobj_new();
  local_438 = sobj_new();
  local_448 = 2;
  local_560 = 0;
  if (((local_444 == 0) || (local_440 == 0)) || (local_43c == 0)) {
LAB_004049d4:
    uVar5 = 0;
  }
  else if (local_438 == 0) {
    uVar5 = 0;
  }
  else {
LAB_004049cc:
    do {
      p_Var1 = (__fd_mask *)local_5e0;
      if (param_3 == 0) goto LAB_004049d4;
      do {
        *p_Var1 = 0;
        p_Var1 = p_Var1 + 1;
      } while (p_Var1 != &local_560);
      local_5e0[0] = local_5e0[0] | 1;
      local_5e8.tv_usec = 10;
      local_5e8.tv_sec = 5;
      iVar2 = select(1,(fd_set *)local_5e0,(fd_set *)0x0,(fd_set *)0x0,&local_5e8);
      if (-1 < iVar2) {
        if (iVar2 != 0) {
          __nbytes = param_3;
          if (0x400 < param_3) {
            __nbytes = 0x400;
          }
          sVar4 = read(0,auStack_42c,__nbytes)   //possible issue identified - semgrep
          if (-1 < sVar4) {
            if (sVar4 == 0) goto LAB_004049d4;
            FUN_00403f78(&local_560,auStack_42c,sVar4);
            param_3 = param_3 - sVar4;
            goto LAB_004049cc;
          }
        }
        uVar5 = 0xffffffff;
        break;
      }
      piVar3 = __errno_location();
      uVar5 = 0xffffffff;
    } while (*piVar3 == 4);
  }
  FUN_00403f78(&local_560,0,0);
  if (local_560 == 2) {
    uVar5 = 0xffffffff;
  }
  if (local_444 != 0) {
    sobj_del();
  }
  if (local_440 != 0) {
    sobj_del();
  }
  if (local_43c != 0) {
    sobj_del();
  }
  if (local_438 != 0) {
    sobj_del();
  }
  return uVar5;
}