void FUN_00414678(void)

{
  bool bVar1;
  __fd_mask *p_Var2;
  timeval *__timeout;
  int iVar3;
  ssize_t sVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  int local_178;
  timeval local_174;
  sysinfo local_16c;
  fd_set local_12c;
  fd_set fStack_ac;
  undefined4 uStack_2c;
  
LAB_00414be0:
  do {
    while( true ) {
      piVar10 = DAT_00433ed0;
      if (DAT_00433e90 != 0) goto LAB_00414c30;
      if ((int **)DAT_00433ed0 == &DAT_00433ed0) {
        piVar10 = (int *)0x0;
        if ((((int **)DAT_00433eb8 == &DAT_00433eb8) && ((int **)DAT_00433ec0 == &DAT_00433ec0)) &&
           ((int **)DAT_00433ec8 == &DAT_00433ec8)) goto LAB_00414c30;
      }
      else if (DAT_00433ed0 != (int *)0x0) {
        sysinfo(&local_16c);
        local_174.tv_sec = piVar10[3];
        if (local_16c.uptime == local_174.tv_sec) {
          bVar1 = piVar10[4] < 1;
        }
        else {
          bVar1 = local_174.tv_sec <= local_16c.uptime;
        }
        local_174.tv_sec = local_174.tv_sec - local_16c.uptime;
        if (bVar1) {
          local_174.tv_usec = 0;
          local_174.tv_sec = 0;
        }
        else {
          local_174.tv_usec = piVar10[4];
          if (local_174.tv_usec < 0) {
            local_174.tv_usec = local_174.tv_usec + 1000000;
            local_174.tv_sec = local_174.tv_sec + -1;
          }
        }
      }
      p_Var2 = local_12c.fds_bits;
      do {
        ((fd_set *)p_Var2)->fds_bits[0] = 0;
        p_Var2 = ((fd_set *)p_Var2)->fds_bits + 1;
      } while ((fd_set *)p_Var2 != &fStack_ac);
      do {
        *p_Var2 = 0;
        p_Var2 = p_Var2 + 1;
      } while (p_Var2 != &uStack_2c);
      local_12c.fds_bits[DAT_00433e94 >> 5] =
           local_12c.fds_bits[DAT_00433e94 >> 5] | 1 << (DAT_00433e94 & 0x1f);
      uVar8 = DAT_00433e94 & (int)~DAT_00433e94 >> 0x1f;
      for (piVar9 = DAT_00433eb8; piVar7 = DAT_00433ec0, (int **)piVar9 != &DAT_00433eb8;
          piVar9 = (int *)*piVar9) {
        uVar6 = piVar9[3];
        local_12c.fds_bits[uVar6 >> 5] = local_12c.fds_bits[uVar6 >> 5] | 1 << (uVar6 & 0x1f);
        if ((int)uVar8 < (int)uVar6) {
          uVar8 = uVar6;
        }
      }
      for (; (int **)piVar7 != &DAT_00433ec0; piVar7 = (int *)*piVar7) {
        uVar6 = piVar7[3];
        fStack_ac.fds_bits[uVar6 >> 5] = fStack_ac.fds_bits[uVar6 >> 5] | 1 << (uVar6 & 0x1f);
        if ((int)uVar8 < (int)uVar6) {
          uVar8 = uVar6;
        }
      }
      __timeout = &local_174;
      if (piVar10 == (int *)0x0) {
        __timeout = (timeval *)0x0;
      }
      iVar3 = select(uVar8 + 1,&local_12c,&fStack_ac,(fd_set *)0x0,__timeout);
      if (-1 < iVar3) break;
      piVar10 = __errno_location();
      if (*piVar10 != 4) {
LAB_00414c30:
        FUN_00414554(0);
        FUN_00413fc8(0);
        FUN_00413e48(0);
        FUN_00413f08(0);
        return;
      }
    }
    if (((iVar3 != 0) &&
        ((local_12c.fds_bits[DAT_00433e94 >> 5] >> (DAT_00433e94 & 0x1f) & 1U) != 0)) &&
       ((sVar4 = read(DAT_00433e94,&local_178,4), -1 < sVar4 &&   //possible issue identified - semgrep
        ((local_178 != 0 && (piVar9 = DAT_00433ec8, (int **)DAT_00433ec8 != &DAT_00433ec8)))))) {
      do {
        if (piVar9[3] == local_178) {
          iVar5 = (*(code *)piVar9[5])(local_178,piVar9[4],DAT_00433e9c);
          if (iVar5 < 0) {
            iVar5 = *piVar9;
            piVar7 = (int *)piVar9[1];
            uVar8 = piVar9[2];
            *piVar7 = iVar5;
            *piVar9 = 0;
            *(int **)(iVar5 + 4) = piVar7;
            *piVar9 = (int)DAT_00433eb0;
            DAT_00433eb0[1] = (int)piVar9;
            piVar9[2] = uVar8 & 0xfffffeff;
            DAT_00433eb0 = piVar9;
            piVar9[1] = (int)&DAT_00433eb0;
          }
          break;
        }
        piVar9 = (int *)*piVar9;
      } while ((int **)piVar9 != &DAT_00433ec8);
      if (DAT_00433e90 != 0) goto LAB_00414c30;
    }
    piVar9 = DAT_00433ed0;
    if ((piVar10 == (int *)0x0) || (DAT_00433ed0 != piVar10)) {
LAB_00414a78:
      if (iVar3 == 0) goto LAB_00414be0;
    }
    else {
      sysinfo(&local_16c);
      if (iVar3 == 0) {
LAB_00414a14:
        if ((code *)piVar10[6] != (code *)0x0) {
          (*(code *)piVar10[6])(piVar10[5],DAT_00433e9c);
        }
        iVar5 = *piVar10;
        piVar7 = (int *)piVar10[1];
        uVar8 = piVar10[2];
        *piVar7 = iVar5;
        *piVar10 = 0;
        *(int **)(iVar5 + 4) = piVar7;
        *piVar10 = (int)DAT_00433ea8;
        DAT_00433ea8[1] = (int)piVar9;
        piVar10[2] = uVar8 & 0xfffffeff;
        DAT_00433ea8 = piVar9;
        piVar10[1] = (int)&DAT_00433ea8;
        goto LAB_00414a78;
      }
      if (local_16c.uptime == piVar10[3]) {
        if (piVar10[4] < 1) goto LAB_00414a14;
      }
      else if (piVar10[3] <= local_16c.uptime) goto LAB_00414a14;
    }
    piVar10 = DAT_00433eb8;
    if ((int **)DAT_00433eb8 != &DAT_00433eb8) {
      do {
        uVar8 = piVar10[3];
        iVar3 = 0;
        if ((local_12c.fds_bits[uVar8 >> 5] >> (uVar8 & 0x1f) & 1U) != 0) {
          iVar3 = (*(code *)piVar10[5])(uVar8,piVar10[4],DAT_00433e9c);
        }
        piVar9 = (int *)*piVar10;
        if (iVar3 < 0) {
          iVar3 = *piVar10;
          piVar7 = (int *)piVar10[1];
          uVar8 = piVar10[2];
          *piVar7 = iVar3;
          *piVar10 = 0;
          piVar10[2] = uVar8 & 0xfffffeff;
          *(int **)(iVar3 + 4) = piVar7;
          *piVar10 = (int)DAT_00433ea0;
          DAT_00433ea0[1] = (int)piVar10;
          DAT_00433ea0 = piVar10;
          piVar10[1] = (int)&DAT_00433ea0;
        }
        piVar10 = piVar9;
      } while ((int **)piVar9 != &DAT_00433eb8);
    }
    piVar10 = DAT_00433ec0;
    if ((int **)DAT_00433ec0 != &DAT_00433ec0) {
      do {
        uVar8 = piVar10[3];
        iVar3 = 0;
        if ((fStack_ac.fds_bits[uVar8 >> 5] >> (uVar8 & 0x1f) & 1U) != 0) {
          iVar3 = (*(code *)piVar10[5])(uVar8,piVar10[4],DAT_00433e9c);
        }
        piVar9 = (int *)*piVar10;
        if (iVar3 < 0) {
          iVar3 = *piVar10;
          piVar7 = (int *)piVar10[1];
          uVar8 = piVar10[2];
          *piVar7 = iVar3;
          *piVar10 = 0;
          piVar10[2] = uVar8 & 0xfffffeff;
          *(int **)(iVar3 + 4) = piVar7;
          *piVar10 = (int)DAT_00433ea0;
          DAT_00433ea0[1] = (int)piVar10;
          DAT_00433ea0 = piVar10;
          piVar10[1] = (int)&DAT_00433ea0;
        }
        piVar10 = piVar9;
      } while ((int **)piVar9 != &DAT_00433ec0);
    }
  } while( true );
}