
/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */
/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */
/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */

int MHD_poll(MHD_Daemon *daemon,int may_block)

{
  pollfd *ppVar1;
  pollfd *p_00;
  ushort uVar2;
  MHD_FLAG MVar3;
  MHD_ConnectionEventLoopInfo MVar4;
  long lVar5;
  MHD_UpgradeResponseHandle *pMVar6;
  MHD_Connection *pMVar7;
  int iVar8;
  pollfd *__fds;
  MHD_Connection *pMVar9;
  int *piVar10;
  char *pcVar11;
  int iVar12;
  long lVar13;
  MHD_Connection *pMVar14;
  MHD_UpgradeResponseHandle *pMVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  uint uVar19;
  long in_FS_OFFSET;
  uint local_78;
  uint local_74;
  uint local_70;
  int local_6c;
  ulonglong ltimeout;
  uint64_t __b;
  pollfd p [2];
  
  lVar5 = *(long *)(in_FS_OFFSET + 0x28);
  iVar8 = 0;
  if (daemon->shutdown != false) goto LAB_0010e779;
  MVar3 = daemon->options;
  if ((MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
    if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&
       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {
      may_block = 0;
    }
    pMVar9 = daemon->connections_head;
    uVar19 = 0;
    uVar16 = uVar19;
    if (pMVar9 != (MHD_Connection *)0x0) {
      uVar16 = 0;
      do {
        uVar16 = uVar16 + 1;
        pMVar9 = pMVar9->next;
      } while (pMVar9 != (MHD_Connection *)0x0);
    }
    for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;
        pMVar15 = pMVar15->next) {
      uVar16 = uVar16 + 2;
    }
    __fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);
    if (__fds == (pollfd *)0x0) {
      piVar10 = __errno_location();
      pcVar11 = strerror(*piVar10);
      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);
      iVar8 = 0;
    }
    else {
      local_6c = daemon->listen_fd;
      local_78 = uVar19;
      if (local_6c != -1) {
        if (daemon->was_quiesced == false) {
          if (daemon->connections < daemon->connection_limit) {
            if (daemon->at_limit == false) {
              __fds->fd = local_6c;
              __fds->events = 1;
              __fds->revents = 0;
              local_6c = 0;
              local_78 = 1;
            }
            else {
              local_6c = -1;
            }
          }
          else {
            local_6c = -1;
          }
        }
        else {
          local_6c = -1;
        }
      }
      local_70 = (daemon->itc).fd;
      if (local_70 != 0xffffffff) {
        ppVar1 = __fds + local_78;
        ppVar1->fd = local_70;
        ppVar1->events = 1;
        ppVar1->revents = 0;
        local_70 = local_78;
        local_78 = local_78 + 1;
      }
      if ((((may_block != 0) &&
           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&
          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&
         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {
        may_block = 0x7fffffff;
      }
      pMVar9 = daemon->connections_tail;
      if (pMVar9 == (MHD_Connection *)0x0) {
        iVar8 = 0;
      }
      else {
        iVar8 = 0;
        do {
          ppVar1 = __fds + (local_78 + iVar8);
          ppVar1->fd = pMVar9->socket_fd;
          MVar4 = pMVar9->event_loop_info;
          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {
            ppVar1->events = ppVar1->events | 6;
          }
          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {
            ppVar1->events = ppVar1->events | 3;
          }
          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {
            ppVar1->events = ppVar1->events | 2;
          }
          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {
            may_block = 0;
          }
          iVar8 = iVar8 + 1;
          pMVar9 = pMVar9->prev;
        } while (pMVar9 != (MHD_Connection *)0x0);
      }
      pMVar15 = daemon->urh_tail;
      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {
        local_74 = iVar8 + local_78;
        do {
          p_00 = (pollfd *)(__fds + local_74);
          p_00->fd = pMVar15->connection->socket_fd;
          p_00[1].fd = (pMVar15->mhd).socket;
          urh_update_pollfd(pMVar15,p_00);
          pMVar15 = pMVar15->prev;
          local_74 = local_74 + 2;
        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);
      }
      if (local_78 + uVar16 == 0) {
        free(__fds);
        iVar8 = 1;
      }
      else {
        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);
        if (iVar8 < 0) {
          piVar10 = __errno_location();
          if (*piVar10 == 4) {
            free(__fds);
            iVar8 = 1;
          }
          else {
            pcVar11 = strerror(*piVar10);
            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);
            free(__fds);
            iVar8 = 0;
          }
        }
        else {
          daemon->data_already_pending = false;
          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {
            read((daemon->itc).fd,&__b,8);
          }
          if (daemon->shutdown == false) {
            pMVar9 = daemon->connections_tail;
            if (pMVar9 != (MHD_Connection *)0x0) {
              pMVar7 = pMVar9->prev;
              if (uVar16 == 0) {
                uVar19 = 0;
              }
              else {
                do {
                  pMVar14 = pMVar7;
                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {
                    uVar2 = __fds[local_78 + uVar19].revents;
                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),
                                  (uVar2 & 0xba) != 0);
                    uVar19 = uVar19 + 1;
                  }
                } while ((pMVar14 != (MHD_Connection *)0x0) &&
                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));
              }
            }
            uVar19 = local_78 + 1 + uVar19;
            pMVar15 = daemon->urh_tail;
            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {
              pMVar6 = pMVar15->prev;
              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||
                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;
              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));
              process_urh(pMVar15);
              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&
                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {
                MHD_connection_finish_forward_(pMVar15->connection);
                pMVar15->clean_ready = true;
                MHD_resume_connection(pMVar15->connection);
              }
              uVar19 = uVar19 + 2;
              pMVar15 = pMVar6;
            }
            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {
              MHD_accept_connection(daemon);
            }
            free(__fds);
            iVar8 = 1;
          }
          else {
            free(__fds);
            iVar8 = 0;
          }
        }
      }
    }
    goto LAB_0010e779;
  }
  p[0].fd = 0;
  p[0].events = 0;
  p[0].revents = 0;
  p[1].fd = 0;
  p[1].events = 0;
  p[1].revents = 0;
  iVar18 = daemon->listen_fd;
  lVar13 = 0;
  if (iVar18 != -1) {
    if (daemon->was_quiesced == false) {
      p[0].events = 1;
      p[0].fd = iVar18;
      p[0].revents = 0;
      iVar18 = 0;
      lVar13 = 1;
    }
    else {
      iVar18 = -1;
      lVar13 = 0;
    }
  }
  iVar12 = (int)lVar13;
  iVar8 = (daemon->itc).fd;
  if (iVar8 == -1) {
    iVar17 = -1;
    iVar8 = iVar12;
    if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;
LAB_0010e770:
    iVar8 = 1;
    if (iVar12 == 0) goto LAB_0010e779;
    iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);
    if (iVar8 < 0) goto LAB_0010e7cb;
    if (iVar17 != -1) goto LAB_0010e2a7;
  }
  else {
    p[lVar13].fd = iVar8;
    p[lVar13].events = 1;
    iVar17 = iVar12;
    iVar8 = iVar12 + 1;
    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {
LAB_0010e768:
      iVar12 = iVar8;
      resume_suspended_connections(daemon);
      goto LAB_0010e770;
    }
    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);
    if (iVar8 < 0) {
LAB_0010e7cb:
      piVar10 = __errno_location();
      iVar8 = 1;
      if (*piVar10 != 4) {
        pcVar11 = strerror(*piVar10);
        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);
        iVar8 = 0;
      }
      goto LAB_0010e779;
    }
LAB_0010e2a7:
    if ((p[iVar17].revents & 1) != 0) {
      read((daemon->itc).fd,&__b,8);
    }
  }
  iVar8 = 0;
  if (((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0))
  {
    MHD_accept_connection(daemon);
    iVar8 = 1;
  }
LAB_0010e779:
  if (lVar5 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar8;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



undefined8 FUN_0010e1c5(long param_1,ulong param_2)

{
  pollfd *ppVar1;
  ushort uVar2;
  long *plVar3;
  long lVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined8 uVar8;
  pollfd *__fds;
  int *piVar9;
  char *pcVar10;
  long lVar11;
  long lVar12;
  long *plVar13;
  uint uVar14;
  int iVar15;
  uint uVar16;
  ulong uVar17;
  long in_FS_OFFSET;
  uint local_78;
  uint local_74;
  uint local_70;
  int local_6c;
  ulong local_68;
  undefined1 local_60 [8];
  undefined8 local_58;
  undefined8 local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar8 = 0;
  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;
  uVar17 = param_2 & 0xffffffff;
  uVar16 = *(uint *)(param_1 + 0x1b4);
  if ((uVar16 & 4) == 0) {
    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {
      uVar17 = 0;
    }
    lVar11 = *(long *)(param_1 + 0x10);
    uVar16 = 0;
    uVar14 = uVar16;
    if (lVar11 != 0) {
      uVar14 = 0;
      do {
        uVar14 = uVar14 + 1;
        lVar11 = *(long *)(lVar11 + 0x10);
      } while (lVar11 != 0);
    }
    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {
      uVar14 = uVar14 + 2;
    }
    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);
    if (__fds == (pollfd *)0x0) {
      piVar9 = __errno_location();
      pcVar10 = strerror(*piVar9);
      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);
      uVar8 = 0;
    }
    else {
      local_6c = *(int *)(param_1 + 0x178);
      local_78 = uVar16;
      if (local_6c != -1) {
        if (*(char *)(param_1 + 0x195) == '\0') {
          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {
            if (*(char *)(param_1 + 0x196) == '\0') {
              __fds->fd = local_6c;
              __fds->events = 1;
              __fds->revents = 0;
              local_6c = 0;
              local_78 = 1;
            }
            else {
              local_6c = -1;
            }
          }
          else {
            local_6c = -1;
          }
        }
        else {
          local_6c = -1;
        }
      }
      local_70 = *(uint *)(param_1 + 400);
      if (local_70 != 0xffffffff) {
        ppVar1 = __fds + local_78;
        ppVar1->fd = local_70;
        ppVar1->events = 1;
        ppVar1->revents = 0;
        local_70 = local_78;
        local_78 = local_78 + 1;
      }
      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&
          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&
         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {
        uVar17 = 0x7fffffff;
      }
      iVar7 = (int)uVar17;
      lVar11 = *(long *)(param_1 + 0x18);
      if (lVar11 == 0) {
        iVar6 = 0;
      }
      else {
        iVar6 = 0;
        do {
          ppVar1 = __fds + (local_78 + iVar6);
          ppVar1->fd = *(int *)(lVar11 + 0x130);
          iVar7 = *(int *)(lVar11 + 0x144);
          if (iVar7 == 1) {
            ppVar1->events = ppVar1->events | 6;
          }
          else if (iVar7 == 0) {
            ppVar1->events = ppVar1->events | 3;
          }
          else if (iVar7 == 2) {
            ppVar1->events = ppVar1->events | 2;
          }
          else if (iVar7 == 3) {
            uVar17 = 0;
          }
          iVar7 = (int)uVar17;
          iVar6 = iVar6 + 1;
          lVar11 = *(long *)(lVar11 + 0x18);
        } while (lVar11 != 0);
      }
      plVar13 = *(long **)(param_1 + 0x1c8);
      if (plVar13 != (long *)0x0) {
        local_74 = iVar6 + local_78;
        do {
          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);
          (__fds + local_74)[1].fd = (int)plVar13[0xf];
          FUN_00108e38(plVar13);
          plVar13 = (long *)plVar13[2];
          local_74 = local_74 + 2;
        } while (plVar13 != (long *)0x0);
      }
      if (local_78 + uVar14 == 0) {
        free(__fds);
        uVar8 = 1;
      }
      else {
        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);
        if (iVar7 < 0) {
          piVar9 = __errno_location();
          if (*piVar9 == 4) {
            free(__fds);
            uVar8 = 1;
          }
          else {
            pcVar10 = strerror(*piVar9);
            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);
            free(__fds);
            uVar8 = 0;
          }
        }
        else {
          *(undefined1 *)(param_1 + 0x198) = 0;
          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {
            read(*(int *)(param_1 + 400),local_60,8);
          }
          if (*(char *)(param_1 + 0x194) == '\0') {
            lVar11 = *(long *)(param_1 + 0x18);
            if (lVar11 != 0) {
              lVar4 = *(long *)(lVar11 + 0x18);
              if (uVar14 == 0) {
                uVar16 = 0;
              }
              else {
                do {
                  lVar12 = lVar4;
                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {
                    uVar2 = __fds[local_78 + uVar16].revents;
                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);
                    uVar16 = uVar16 + 1;
                  }
                } while ((lVar12 != 0) &&
                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));
              }
            }
            uVar16 = local_78 + 1 + uVar16;
            plVar13 = *(long **)(param_1 + 0x1c8);
            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&
                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)
                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {
              FUN_00108ebd(plVar13);
              FUN_001098d1(plVar13);
              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&
                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {
                FUN_0010618a(*plVar13);
                *(undefined1 *)((long)plVar13 + 0x89) = 1;
                MHD_resume_connection(*plVar13);
              }
              uVar16 = uVar16 + 2;
              plVar13 = plVar3;
            }
            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {
              FUN_0010bb71(param_1);
            }
            free(__fds);
            uVar8 = 1;
          }
          else {
            free(__fds);
            uVar8 = 0;
          }
        }
      }
    }
    goto LAB_0010e779;
  }
  local_58 = 0;
  local_50 = 0;
  iVar7 = *(int *)(param_1 + 0x178);
  lVar11 = 0;
  if (iVar7 != -1) {
    if (*(char *)(param_1 + 0x195) == '\0') {
      local_58 = (ulong)CONCAT24(1,iVar7);
      iVar7 = 0;
      lVar11 = 1;
    }
    else {
      iVar7 = -1;
      lVar11 = 0;
    }
  }
  iVar6 = (int)lVar11;
  if (*(int *)(param_1 + 400) == -1) {
    iVar15 = -1;
    iVar5 = iVar6;
    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;
LAB_0010e770:
    uVar8 = 1;
    if (iVar6 == 0) goto LAB_0010e779;
    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);
    if (iVar6 < 0) goto LAB_0010e7cb;
    if (iVar15 != -1) goto LAB_0010e2a7;
  }
  else {
    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);
    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;
    iVar15 = iVar6;
    iVar5 = iVar6 + 1;
    if ((uVar16 & 0x2000) != 0) {
LAB_0010e768:
      iVar6 = iVar5;
      FUN_00109311(param_1);
      goto LAB_0010e770;
    }
    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);
    if (iVar6 < 0) {
LAB_0010e7cb:
      piVar9 = __errno_location();
      uVar8 = 1;
      if (*piVar9 != 4) {
        pcVar10 = strerror(*piVar9);
        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);
        uVar8 = 0;
      }
      goto LAB_0010e779;
    }
LAB_0010e2a7:
    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {
      read(*(int *)(param_1 + 400),local_60,8);
    }
  }
  uVar8 = 0;
  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&
     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {
    FUN_0010bb71(param_1);
    uVar8 = 1;
  }
LAB_0010e779:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar8;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x38],RAX
XOR EAX,EAX
MOVZX EDX,byte ptr [RDI + 0x194]
TEST DL,DL
JNZ 0x0010e779
MOV RBX,RDI
MOV R14D,ESI
MOV EAX,dword ptr [RDI + 0x1b4]
MOV R15D,EAX
AND R15D,0x4
JZ 0x0010e2fa
MOV qword ptr [RSP + 0x20],0x0
MOV qword ptr [RSP + 0x28],0x0
MOV R13D,dword ptr [RDI + 0x178]
MOV EBP,0x0
CMP R13D,-0x1
JZ 0x0010e255
MOVZX EDX,byte ptr [RDI + 0x195]
TEST DL,DL
JNZ 0x0010e753
MOV dword ptr [RSP + 0x20],R13D
MOV word ptr [RSP + 0x24],0x1
MOV R13D,0x0
MOV EBP,0x1
MOV R12D,dword ptr [RBX + 0x190]
CMP R12D,-0x1
JZ 0x0010e763
MOV EDX,EBP
MOV dword ptr [RSP + RDX*0x8 + 0x20],R12D
MOV word ptr [RSP + RDX*0x8 + 0x24],0x1
MOV R12D,EBP
ADD EBP,0x1
TEST AH,0x20
JNZ 0x0010e768
TEST R14D,R14D
SETNZ DL
MOVZX EDX,DL
NEG EDX
MOV ESI,EBP
LEA RDI,[RSP + 0x20]
MOV ECX,0x10
CALL 0x001042a0
TEST EAX,EAX
JS 0x0010e7cb
MOVSXD R12,R12D
TEST byte ptr [RSP + R12*0x8 + 0x26],0x1
JNZ 0x0010e802
MOVZX EDX,byte ptr [RBX + 0x194]
MOV EAX,0x0
TEST DL,DL
JNZ 0x0010e779
MOV EAX,0x1
CMP R13D,-0x1
JZ 0x0010e779
MOVSXD R13,R13D
TEST byte ptr [RSP + R13*0x8 + 0x26],0x1
JZ 0x0010e779
MOV RDI,RBX
CALL 0x0010bb71
MOV EAX,0x1
JMP 0x0010e779
TEST AH,0x20
JNZ 0x0010e3bc
MOV RAX,qword ptr [RBX + 0x10]
TEST RAX,RAX
JZ 0x0010e3d2
MOV R12D,R15D
ADD R12D,0x1
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JNZ 0x0010e313
MOV RAX,qword ptr [RBX + 0x1c0]
TEST RAX,RAX
JZ 0x0010e339
ADD R12D,0x2
MOV RAX,qword ptr [RAX + 0x8]
TEST RAX,RAX
JNZ 0x0010e32c
LEA EDI,[R12 + 0x2]
MOV ESI,0x8
CALL 0x00104380
MOV R13,RAX
TEST RAX,RAX
JZ 0x0010e3da
MOV ECX,dword ptr [RBX + 0x178]
MOV dword ptr [RSP + 0xc],ECX
MOV dword ptr [RSP],R15D
CMP ECX,-0x1
JZ 0x0010e413
MOVZX EAX,byte ptr [RBX + 0x195]
TEST AL,AL
JNZ 0x0010e407
MOV EAX,dword ptr [RBX + 0x1a0]
CMP dword ptr [RBX + 0x19c],EAX
JNC 0x0010e46f
CMP byte ptr [RBX + 0x196],0x0
JNZ 0x0010e47d
MOV dword ptr [R13],ECX
MOV word ptr [R13 + 0x4],0x1
MOV word ptr [R13 + 0x6],0x0
MOV dword ptr [RSP + 0xc],0x0
MOV dword ptr [RSP],0x1
JMP 0x0010e413
CALL 0x00109311
CMP EAX,0x1
MOV EAX,0x0
CMOVZ R14D,EAX
JMP 0x0010e303
MOV R12D,R15D
JMP 0x0010e320
CALL 0x001040b0
MOV EDI,dword ptr [RAX]
CALL 0x00104720
MOV RDX,RAX
LEA RSI,[0x119092]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00110c11
MOV EAX,0x0
JMP 0x0010e779
MOV dword ptr [RSP],R15D
MOV dword ptr [RSP + 0xc],0xffffffff
MOV ECX,dword ptr [RBX + 0x190]
MOV dword ptr [RSP + 0x8],ECX
CMP ECX,-0x1
JZ 0x0010e444
MOV EDI,dword ptr [RSP]
MOV EAX,EDI
LEA RAX,[R13 + RAX*0x8]
MOV dword ptr [RAX],ECX
MOV word ptr [RAX + 0x4],0x1
MOV word ptr [RAX + 0x6],0x0
MOV dword ptr [RSP + 0x8],EDI
ADD EDI,0x1
MOV dword ptr [RSP],EDI
TEST R14D,R14D
JZ 0x0010e458
MOV R14D,0xffffffff
TEST byte ptr [RBX + 0x1b4],0x4
JZ 0x0010e48b
MOV RAX,qword ptr [RBX + 0x18]
TEST RAX,RAX
JZ 0x0010e503
MOV ESI,R15D
MOV EDI,0x0
JMP 0x0010e4c7
MOV dword ptr [RSP],R15D
MOV dword ptr [RSP + 0xc],0xffffffff
JMP 0x0010e413
MOV dword ptr [RSP],R15D
MOV dword ptr [RSP + 0xc],0xffffffff
JMP 0x0010e413
LEA RSI,[RSP + 0x10]
MOV RDI,RBX
CALL 0x001046a0
CMP EAX,0x1
JNZ 0x0010e458
MOV R14,qword ptr [RSP + 0x10]
CMP R14,0x7fffffff
MOV EAX,0x7fffffff
CMOVA R14D,EAX
JMP 0x0010e458
CMP EDX,0x3
CMOVZ R14D,EDI
ADD ESI,0x1
MOV RAX,qword ptr [RAX + 0x18]
TEST RAX,RAX
JZ 0x0010e506
MOV ECX,dword ptr [RSP]
LEA EDX,[RCX + RSI*0x1]
LEA RCX,[R13 + RDX*0x8]
MOV EDX,dword ptr [RAX + 0x130]
MOV dword ptr [RCX],EDX
MOV EDX,dword ptr [RAX + 0x144]
CMP EDX,0x1
JZ 0x0010e4fc
TEST EDX,EDX
JZ 0x0010e4f5
CMP EDX,0x2
JNZ 0x0010e4b4
OR word ptr [RCX + 0x4],0x2
JMP 0x0010e4bb
OR word ptr [RCX + 0x4],0x3
JMP 0x0010e4bb
OR word ptr [RCX + 0x4],0x6
JMP 0x0010e4bb
MOV ESI,R15D
MOV RBP,qword ptr [RBX + 0x1c8]
TEST RBP,RBP
JZ 0x0010e54a
ADD ESI,dword ptr [RSP]
MOV dword ptr [RSP + 0x4],ESI
MOV EAX,dword ptr [RSP + 0x4]
LEA RSI,[R13 + RAX*0x8]
MOV RAX,qword ptr [RBP]
MOV EAX,dword ptr [RAX + 0x130]
MOV dword ptr [RSI],EAX
MOV EAX,dword ptr [RBP + 0x78]
MOV dword ptr [RSI + 0x8],EAX
MOV RDI,RBP
CALL 0x00108e38
MOV RBP,qword ptr [RBP + 0x10]
ADD dword ptr [RSP + 0x4],0x2
TEST RBP,RBP
JNZ 0x0010e519
MOV ESI,dword ptr [RSP]
ADD ESI,R12D
JZ 0x0010e5c2
MOV ESI,ESI
MOV EDX,R14D
MOV RDI,R13
CALL 0x001045b0
TEST EAX,EAX
JS 0x0010e5d4
MOV byte ptr [RBX + 0x198],0x0
MOV EAX,dword ptr [RSP + 0x8]
CMP EAX,-0x1
JZ 0x0010e581
CDQE
TEST byte ptr [R13 + RAX*0x8 + 0x6],0x1
JNZ 0x0010e620
MOVZX EAX,byte ptr [RBX + 0x194]
TEST AL,AL
JNZ 0x0010e63a
MOV RDI,qword ptr [RBX + 0x18]
TEST RDI,RDI
JZ 0x0010e5a9
MOV RBP,qword ptr [RDI + 0x18]
TEST R12D,R12D
JNZ 0x0010e668
MOV R15D,R12D
MOV RBP,qword ptr [RBX + 0x1c8]
MOV EAX,dword ptr [RSP]
LEA R14D,[RAX + R15*0x1 + 0x1]
NOT EAX
MOV dword ptr [RSP],EAX
JMP 0x0010e6aa
MOV RDI,R13
CALL 0x001047b0
MOV EAX,0x1
JMP 0x0010e779
CALL 0x001040b0
MOV EDI,dword ptr [RAX]
CMP EDI,0x4
JZ 0x0010e60e
CALL 0x00104720
MOV RDX,RAX
LEA RSI,[0x119148]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00110c11
MOV RDI,R13
CALL 0x001047b0
MOV EAX,0x0
JMP 0x0010e779
MOV RDI,R13
CALL 0x001047b0
MOV EAX,0x1
JMP 0x0010e779
LEA RSI,[RSP + 0x18]
MOV EDI,dword ptr [RBX + 0x190]
MOV EDX,0x8
CALL 0x00104340
JMP 0x0010e581
MOV RDI,R13
CALL 0x001047b0
MOV EAX,0x0
JMP 0x0010e779
TEST RBP,RBP
JZ 0x0010e5a9
MOV RAX,qword ptr [RBP + 0x18]
MOV RDI,RBP
CMP R15D,R12D
JNC 0x0010e5a9
MOV RBP,RAX
MOV EAX,dword ptr [RSP]
LEA EAX,[RAX + R15*0x1]
LEA RAX,[R13 + RAX*0x8]
MOV ECX,dword ptr [RDI + 0x130]
CMP dword ptr [RAX],ECX
JNZ 0x0010e64c
MOVZX ESI,word ptr [RAX + 0x6]
TEST SIL,0xba
SETNZ CL
MOVZX ECX,CL
MOV EDX,ESI
SHR DX,0x2
AND EDX,0x1
AND ESI,0x1
CALL 0x001097b0
ADD R15D,0x1
JMP 0x0010e64c
ADD R14D,0x2
MOV RBP,R15
MOV EAX,dword ptr [RSP]
ADD EAX,R14D
CMP EAX,R12D
JNC 0x0010e72c
TEST RBP,RBP
JZ 0x0010e72c
MOV R15,qword ptr [RBP + 0x10]
LEA EAX,[R14 + -0x1]
LEA RSI,[R13 + RAX*0x8]
MOV RAX,qword ptr [RBP]
MOV EAX,dword ptr [RAX + 0x130]
CMP dword ptr [RSI],EAX
JNZ 0x0010e72c
MOV EAX,R14D
MOV ECX,dword ptr [RBP + 0x78]
CMP dword ptr [R13 + RAX*0x8],ECX
JNZ 0x0010e72c
MOV RDI,RBP
CALL 0x00108ebd
MOV RDI,RBP
CALL 0x001098d1
CMP qword ptr [RBP + 0x40],0x0
JNZ 0x0010e6a3
CMP qword ptr [RBP + 0x48],0x0
JNZ 0x0010e6a3
CMP qword ptr [RBP + 0x50],0x0
JNZ 0x0010e6a3
CMP qword ptr [RBP + 0x58],0x0
JNZ 0x0010e6a3
MOV RDI,qword ptr [RBP]
CALL 0x0010618a
MOV byte ptr [RBP + 0x89],0x1
MOV RDI,qword ptr [RBP]
CALL 0x00104420
JMP 0x0010e6a3
CMP dword ptr [RSP + 0xc],-0x1
JZ 0x0010e73a
TEST byte ptr [R13 + 0x6],0x1
JNZ 0x0010e749
MOV RDI,R13
CALL 0x001047b0
MOV EAX,0x1
JMP 0x0010e779
MOV RDI,RBX
CALL 0x0010bb71
JMP 0x0010e73a
MOV R13D,0xffffffff
MOV EBP,0x0
JMP 0x0010e255
TEST AH,0x20
JZ 0x0010e770
MOV RDI,RBX
CALL 0x00109311
MOV EAX,0x1
TEST EBP,EBP
JNZ 0x0010e79c
MOV RBX,qword ptr [RSP + 0x38]
XOR RBX,qword ptr FS:[0x28]
JNZ 0x0010e81c
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
TEST R14D,R14D
SETNZ DL
MOVZX EDX,DL
NEG EDX
MOV ESI,EBP
LEA RDI,[RSP + 0x20]
MOV ECX,0x10
CALL 0x001042a0
TEST EAX,EAX
JS 0x0010e7cb
CMP R12D,-0x1
JZ 0x0010e2b6
JMP 0x0010e2a7
CALL 0x001040b0
MOV EDI,dword ptr [RAX]
MOV EAX,0x1
CMP EDI,0x4
JZ 0x0010e779
CALL 0x00104720
MOV RDX,RAX
LEA RSI,[0x119148]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00110c11
MOV EAX,0x0
JMP 0x0010e779
LEA RSI,[RSP + 0x18]
MOV EDI,dword ptr [RBX + 0x190]
MOV EDX,0x8
CALL 0x00104340
JMP 0x0010e2b6
CALL 0x001041b0
(translation_unit "undefined8 FUN_0010e1c5(long param_1,ulong param_2)\n\n{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "undefined8 FUN_0010e1c5(long param_1,ulong param_2)\n\n{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_0010e1c5(long param_1,ulong param_2)" identifier (parameter_list "(long param_1,ulong param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) ))) (compound_statement "{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "pollfd *ppVar1;" type_identifier (pointer_declarator "*ppVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "pollfd *__fds;" type_identifier (pointer_declarator "*__fds" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "ulong local_68;" type_identifier identifier ;) (declaration "undefined1 local_60 [8];" type_identifier (array_declarator "local_60 [8]" identifier [ number_literal ]) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;" if (parenthesized_expression "(*(char *)(param_1 + 0x194) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x194) != '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" * (cast_expression "(char *)(param_1 + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;)) (expression_statement "uVar17 = param_2 & 0xffffffff;" (assignment_expression "uVar17 = param_2 & 0xffffffff" identifier = (binary_expression "param_2 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x1b4);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x1b4)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1b4)" * (cast_expression "(uint *)(param_1 + 0x1b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b4)" ( (binary_expression "param_1 + 0x1b4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" if (parenthesized_expression "((uVar16 & 4) == 0)" ( (binary_expression "(uVar16 & 4) == 0" (parenthesized_expression "(uVar16 & 4)" ( (binary_expression "uVar16 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" { (if_statement "if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }" if (parenthesized_expression "(((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1))" ( (binary_expression "((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)" (parenthesized_expression "((uVar16 & 0x2000) != 0)" ( (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" ( (binary_expression "uVar16 & 0x2000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00109311(), iVar7 == 1)" ( (comma_expression "iVar7 = FUN_00109311(), iVar7 == 1" (assignment_expression "iVar7 = FUN_00109311()" identifier = (call_expression "FUN_00109311()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 == 1" identifier == number_literal)) ))) )) (compound_statement "{\n      uVar17 = 0;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })) (expression_statement "lVar11 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar16;" (assignment_expression "uVar14 = uVar16" identifier = identifier) ;) (if_statement "if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);" do (compound_statement "{\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "lVar11 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x10)" identifier = (pointer_expression "*(long *)(lVar11 + 0x10)" * (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;) })) (for_statement "for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }" for ( (assignment_expression "lVar11 = *(long *)(param_1 + 0x1c0)" identifier = (pointer_expression "*(long *)(param_1 + 0x1c0)" * (cast_expression "(long *)(param_1 + 0x1c0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c0)" ( (binary_expression "param_1 + 0x1c0" identifier + number_literal) ))))) ; (binary_expression "lVar11 != 0" identifier != number_literal) ; (assignment_expression "lVar11 = *(long *)(lVar11 + 8)" identifier = (pointer_expression "*(long *)(lVar11 + 8)" * (cast_expression "(long *)(lVar11 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 8)" ( (binary_expression "lVar11 + 8" identifier + number_literal) ))))) ) (compound_statement "{\n      uVar14 = uVar14 + 2;\n    }" { (expression_statement "uVar14 = uVar14 + 2;" (assignment_expression "uVar14 = uVar14 + 2" identifier = (binary_expression "uVar14 + 2" identifier + number_literal)) ;) })) (expression_statement "__fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);" (assignment_expression "__fds = (pollfd *)calloc((ulong)(uVar14 + 2),8)" identifier = (cast_expression "(pollfd *)calloc((ulong)(uVar14 + 2),8)" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc((ulong)(uVar14 + 2),8)" identifier (argument_list "((ulong)(uVar14 + 2),8)" ( (call_expression "(ulong)(uVar14 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar14 + 2)" ( (binary_expression "uVar14 + 2" identifier + number_literal) ))) , number_literal ))))) ;) (if_statement "if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(__fds == (pollfd *)0x0)" ( (binary_expression "__fds == (pollfd *)0x0" identifier == (cast_expression "(pollfd *)0x0" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10)" identifier (argument_list "(param_1,"Error allocating memory: %s\n",pcVar10)" ( identifier , (string_literal ""Error allocating memory: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" { (expression_statement "local_6c = *(int *)(param_1 + 0x178);" (assignment_expression "local_6c = *(int *)(param_1 + 0x178)" identifier = (pointer_expression "*(int *)(param_1 + 0x178)" * (cast_expression "(int *)(param_1 + 0x178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x178)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "local_78 = uVar16;" (assignment_expression "local_78 = uVar16" identifier = identifier) ;) (if_statement "if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" if (parenthesized_expression "(local_6c != -1)" ( (binary_expression "local_6c != -1" identifier != number_literal) )) (compound_statement "{\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" { (if_statement "if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }" if (parenthesized_expression "(*(char *)(param_1 + 0x195) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x195) == '\0'" (pointer_expression "*(char *)(param_1 + 0x195)" * (cast_expression "(char *)(param_1 + 0x195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x195)" ( (binary_expression "param_1 + 0x195" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }" { (if_statement "if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }" if (parenthesized_expression "(*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0))" ( (binary_expression "*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)" (pointer_expression "*(uint *)(param_1 + 0x19c)" * (cast_expression "(uint *)(param_1 + 0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19c)" ( (binary_expression "param_1 + 0x19c" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_1 + 0x1a0)" * (cast_expression "(uint *)(param_1 + 0x1a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a0)" ( (binary_expression "param_1 + 0x1a0" identifier + number_literal) ))))) )) (compound_statement "{\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }" { (if_statement "if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }" if (parenthesized_expression "(*(char *)(param_1 + 0x196) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x196) == '\0'" (pointer_expression "*(char *)(param_1 + 0x196)" * (cast_expression "(char *)(param_1 + 0x196)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x196)" ( (binary_expression "param_1 + 0x196" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }" { (expression_statement "__fds->fd = local_6c;" (assignment_expression "__fds->fd = local_6c" (field_expression "__fds->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "__fds->events = 1;" (assignment_expression "__fds->events = 1" (field_expression "__fds->events" identifier -> field_identifier) = number_literal) ;) (expression_statement "__fds->revents = 0;" (assignment_expression "__fds->revents = 0" (field_expression "__fds->revents" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              local_6c = -1;\n            }" else (compound_statement "{\n              local_6c = -1;\n            }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n            local_6c = -1;\n          }" else (compound_statement "{\n            local_6c = -1;\n          }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          local_6c = -1;\n        }" else (compound_statement "{\n          local_6c = -1;\n        }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) })) (expression_statement "local_70 = *(uint *)(param_1 + 400);" (assignment_expression "local_70 = *(uint *)(param_1 + 400)" identifier = (pointer_expression "*(uint *)(param_1 + 400)" * (cast_expression "(uint *)(param_1 + 400)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) ))))) ;) (if_statement "if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" if (parenthesized_expression "(local_70 != 0xffffffff)" ( (binary_expression "local_70 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" { (expression_statement "ppVar1 = __fds + local_78;" (assignment_expression "ppVar1 = __fds + local_78" identifier = (binary_expression "__fds + local_78" identifier + identifier)) ;) (expression_statement "ppVar1->fd = local_70;" (assignment_expression "ppVar1->fd = local_70" (field_expression "ppVar1->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar1->events = 1;" (assignment_expression "ppVar1->events = 1" (field_expression "ppVar1->events" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar1->revents = 0;" (assignment_expression "ppVar1->revents = 0" (field_expression "ppVar1->revents" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_70 = local_78;" (assignment_expression "local_70 = local_78" identifier = identifier) ;) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) })) (if_statement "if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }" if (parenthesized_expression "(((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68))" ( (binary_expression "((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)" (parenthesized_expression "((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1))" ( (binary_expression "(((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)" (parenthesized_expression "(((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0))" ( (binary_expression "((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)" (parenthesized_expression "((int)uVar17 != 0)" ( (binary_expression "(int)uVar17 != 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) && (parenthesized_expression "(uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)" ( (comma_expression "uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0" (assignment_expression "uVar17 = 0xffffffff" identifier = number_literal) , (binary_expression "(*(byte *)(param_1 + 0x1b4) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x1b4) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x1b4) & 4" (pointer_expression "*(byte *)(param_1 + 0x1b4)" * (cast_expression "(byte *)(param_1 + 0x1b4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b4)" ( (binary_expression "param_1 + 0x1b4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)" ( (comma_expression "iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1" (assignment_expression "iVar7 = MHD_get_timeout(param_1,&local_68)" identifier = (call_expression "MHD_get_timeout(param_1,&local_68)" identifier (argument_list "(param_1,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) )))) , (binary_expression "iVar7 == 1" identifier == number_literal)) ))) )) && (parenthesized_expression "(uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)" ( (comma_expression "uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68" (assignment_expression "uVar17 = local_68 & 0xffffffff" identifier = (binary_expression "local_68 & 0xffffffff" identifier & number_literal)) , (binary_expression "0x7fffffff < local_68" number_literal < identifier)) ))) )) (compound_statement "{\n        uVar17 = 0x7fffffff;\n      }" { (expression_statement "uVar17 = 0x7fffffff;" (assignment_expression "uVar17 = 0x7fffffff" identifier = number_literal) ;) })) (expression_statement "iVar7 = (int)uVar17;" (assignment_expression "iVar7 = (int)uVar17" identifier = (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" else (compound_statement "{\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);" do (compound_statement "{\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        }" { (expression_statement "ppVar1 = __fds + (local_78 + iVar6);" (assignment_expression "ppVar1 = __fds + (local_78 + iVar6)" identifier = (binary_expression "__fds + (local_78 + iVar6)" identifier + (parenthesized_expression "(local_78 + iVar6)" ( (binary_expression "local_78 + iVar6" identifier + identifier) )))) ;) (expression_statement "ppVar1->fd = *(int *)(lVar11 + 0x130);" (assignment_expression "ppVar1->fd = *(int *)(lVar11 + 0x130)" (field_expression "ppVar1->fd" identifier -> field_identifier) = (pointer_expression "*(int *)(lVar11 + 0x130)" * (cast_expression "(int *)(lVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x130)" ( (binary_expression "lVar11 + 0x130" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(lVar11 + 0x144);" (assignment_expression "iVar7 = *(int *)(lVar11 + 0x144)" identifier = (pointer_expression "*(int *)(lVar11 + 0x144)" * (cast_expression "(int *)(lVar11 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x144)" ( (binary_expression "lVar11 + 0x144" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 6;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 6;" (assignment_expression "ppVar1->events = ppVar1->events | 6" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 6" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" else (if_statement "if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 3;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 3;" (assignment_expression "ppVar1->events = ppVar1->events | 3" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 3" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" else (if_statement "if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 2)" ( (binary_expression "iVar7 == 2" identifier == number_literal) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 2;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 2;" (assignment_expression "ppVar1->events = ppVar1->events | 2" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 2" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" else (if_statement "if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )) (compound_statement "{\n            uVar17 = 0;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })))))))) (expression_statement "iVar7 = (int)uVar17;" (assignment_expression "iVar7 = (int)uVar17" identifier = (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;) }))) (expression_statement "plVar13 = *(long **)(param_1 + 0x1c8);" (assignment_expression "plVar13 = *(long **)(param_1 + 0x1c8)" identifier = (pointer_expression "*(long **)(param_1 + 0x1c8)" * (cast_expression "(long **)(param_1 + 0x1c8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }" if (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }" { (expression_statement "local_74 = iVar6 + local_78;" (assignment_expression "local_74 = iVar6 + local_78" identifier = (binary_expression "iVar6 + local_78" identifier + identifier)) ;) (do_statement "do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);" do (compound_statement "{\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        }" { (expression_statement "__fds[local_74].fd = *(int *)(*plVar13 + 0x130);" (assignment_expression "__fds[local_74].fd = *(int *)(*plVar13 + 0x130)" (field_expression "__fds[local_74].fd" (subscript_expression "__fds[local_74]" identifier [ identifier ]) . field_identifier) = (pointer_expression "*(int *)(*plVar13 + 0x130)" * (cast_expression "(int *)(*plVar13 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar13 + 0x130)" ( (binary_expression "*plVar13 + 0x130" (pointer_expression "*plVar13" * identifier) + number_literal) ))))) ;) (expression_statement "(__fds + local_74)[1].fd = (int)plVar13[0xf];" (assignment_expression "(__fds + local_74)[1].fd = (int)plVar13[0xf]" (field_expression "(__fds + local_74)[1].fd" (subscript_expression "(__fds + local_74)[1]" (parenthesized_expression "(__fds + local_74)" ( (binary_expression "__fds + local_74" identifier + identifier) )) [ number_literal ]) . field_identifier) = (cast_expression "(int)plVar13[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar13[0xf]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00108e38(plVar13);" (call_expression "FUN_00108e38(plVar13)" identifier (argument_list "(plVar13)" ( identifier ))) ;) (expression_statement "plVar13 = (long *)plVar13[2];" (assignment_expression "plVar13 = (long *)plVar13[2]" identifier = (cast_expression "(long *)plVar13[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "local_74 = local_74 + 2;" (assignment_expression "local_74 = local_74 + 2" identifier = (binary_expression "local_74 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(local_78 + uVar14 == 0)" ( (binary_expression "local_78 + uVar14 == 0" (binary_expression "local_78 + uVar14" identifier + identifier) == number_literal) )) (compound_statement "{\n        free(__fds);\n        uVar8 = 1;\n      }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" else (compound_statement "{\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" { (expression_statement "iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);" (assignment_expression "iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7)" identifier = (call_expression "poll(__fds,(ulong)(local_78 + uVar14),iVar7)" identifier (argument_list "(__fds,(ulong)(local_78 + uVar14),iVar7)" ( identifier , (call_expression "(ulong)(local_78 + uVar14)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_78 + uVar14)" ( (binary_expression "local_78 + uVar14" identifier + identifier) ))) , identifier )))) ;) (if_statement "if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" if (parenthesized_expression "(*piVar9 == 4)" ( (binary_expression "*piVar9 == 4" (pointer_expression "*piVar9" * identifier) == number_literal) )) (compound_statement "{\n            free(__fds);\n            uVar8 = 1;\n          }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" else (compound_statement "{\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" { (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10)" identifier (argument_list "(param_1,"poll failed: %s\n",pcVar10)" ( identifier , (string_literal ""poll failed: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" else (compound_statement "{\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" { (expression_statement "*(undefined1 *)(param_1 + 0x198) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x198) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x198)" * (cast_expression "(undefined1 *)(param_1 + 0x198)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x198)" ( (binary_expression "param_1 + 0x198" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }" if (parenthesized_expression "((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0))" ( (binary_expression "(local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)" (parenthesized_expression "(local_70 != 0xffffffff)" ( (binary_expression "local_70 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "((__fds[(int)local_70].revents & 1) != 0)" ( (binary_expression "(__fds[(int)local_70].revents & 1) != 0" (parenthesized_expression "(__fds[(int)local_70].revents & 1)" ( (binary_expression "__fds[(int)local_70].revents & 1" (field_expression "__fds[(int)local_70].revents" (subscript_expression "__fds[(int)local_70]" identifier [ (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            read(*(int *)(param_1 + 400),local_60,8);\n          }" { (expression_statement "read(*(int *)(param_1 + 400),local_60,8);" (call_expression "read(*(int *)(param_1 + 400),local_60,8)" identifier (argument_list "(*(int *)(param_1 + 400),local_60,8)" ( (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) , identifier , number_literal ))) ;) })) (if_statement "if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }" if (parenthesized_expression "(*(char *)(param_1 + 0x194) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x194) == '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" * (cast_expression "(char *)(param_1 + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }" { (expression_statement "lVar11 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }" { (expression_statement "lVar4 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar4 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar16 = 0;\n              }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" else (compound_statement "{\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" { (do_statement "do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));" do (compound_statement "{\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                }" { (expression_statement "lVar12 = lVar4;" (assignment_expression "lVar12 = lVar4" identifier = identifier) ;) (if_statement "if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }" if (parenthesized_expression "(__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130))" ( (binary_expression "__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)" (field_expression "__fds[local_78 + uVar16].fd" (subscript_expression "__fds[local_78 + uVar16]" identifier [ (binary_expression "local_78 + uVar16" identifier + identifier) ]) . field_identifier) == (pointer_expression "*(int *)(lVar11 + 0x130)" * (cast_expression "(int *)(lVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x130)" ( (binary_expression "lVar11 + 0x130" identifier + number_literal) ))))) )) (compound_statement "{\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }" { (expression_statement "uVar2 = __fds[local_78 + uVar16].revents;" (assignment_expression "uVar2 = __fds[local_78 + uVar16].revents" identifier = (field_expression "__fds[local_78 + uVar16].revents" (subscript_expression "__fds[local_78 + uVar16]" identifier [ (binary_expression "local_78 + uVar16" identifier + identifier) ]) . field_identifier)) ;) (expression_statement "FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);" (call_expression "FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0)" identifier (argument_list "(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0)" ( identifier , (binary_expression "uVar2 & 1" identifier & number_literal) , (binary_expression "uVar2 >> 2 & 1" (binary_expression "uVar2 >> 2" identifier >> number_literal) & number_literal) , (binary_expression "(uVar2 & 0xba) != 0" (parenthesized_expression "(uVar2 & 0xba)" ( (binary_expression "uVar2 & 0xba" identifier & number_literal) )) != number_literal) ))) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14))" ( (binary_expression "(lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14)" (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14)" ( (comma_expression "lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14" (assignment_expression "lVar4 = *(long *)(lVar12 + 0x18)" identifier = (pointer_expression "*(long *)(lVar12 + 0x18)" * (cast_expression "(long *)(lVar12 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x18)" ( (binary_expression "lVar12 + 0x18" identifier + number_literal) ))))) , (comma_expression "lVar11 = lVar12, uVar16 < uVar14" (assignment_expression "lVar11 = lVar12" identifier = identifier) , (binary_expression "uVar16 < uVar14" identifier < identifier))) ))) )) ;) }))) })) (expression_statement "uVar16 = local_78 + 1 + uVar16;" (assignment_expression "uVar16 = local_78 + 1 + uVar16" identifier = (binary_expression "local_78 + 1 + uVar16" (binary_expression "local_78 + 1" identifier + number_literal) + identifier)) ;) (expression_statement "plVar13 = *(long **)(param_1 + 0x1c8);" (assignment_expression "plVar13 = *(long **)(param_1 + 0x1c8)" identifier = (pointer_expression "*(long **)(param_1 + 0x1c8)" * (cast_expression "(long **)(param_1 + 0x1c8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) ;) (while_statement "while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }" while (parenthesized_expression "((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf])))" ( (parenthesized_expression "(((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))" ( (binary_expression "((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf])" (parenthesized_expression "((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    ))" ( (binary_expression "(~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )" (parenthesized_expression "(~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0))" ( (binary_expression "~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)" (binary_expression "~local_78 + uVar16 < uVar14" (binary_expression "~local_78 + uVar16" (unary_expression "~local_78" ~ identifier) + identifier) < identifier) && (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )" ( (comma_expression "plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)" (assignment_expression "plVar3 = (long *)plVar13[2]" identifier = (cast_expression "(long *)plVar13[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar13[2]" identifier [ number_literal ]))) , (binary_expression "__fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)" (field_expression "__fds[uVar16 - 1].fd" (subscript_expression "__fds[uVar16 - 1]" identifier [ (binary_expression "uVar16 - 1" identifier - number_literal) ]) . field_identifier) == (pointer_expression "*(int *)(*plVar13 + 0x130)" * (cast_expression "(int *)(*plVar13 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar13 + 0x130)" ( (binary_expression "*plVar13 + 0x130" (pointer_expression "*plVar13" * identifier) + number_literal) )))))) ))) )) && (parenthesized_expression "(__fds[uVar16].fd == (int)plVar13[0xf])" ( (binary_expression "__fds[uVar16].fd == (int)plVar13[0xf]" (field_expression "__fds[uVar16].fd" (subscript_expression "__fds[uVar16]" identifier [ identifier ]) . field_identifier) == (cast_expression "(int)plVar13[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar13[0xf]" identifier [ number_literal ]))) ))) )) )) (compound_statement "{\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }" { (expression_statement "FUN_00108ebd(plVar13);" (call_expression "FUN_00108ebd(plVar13)" identifier (argument_list "(plVar13)" ( identifier ))) ;) (expression_statement "FUN_001098d1(plVar13);" (call_expression "FUN_001098d1(plVar13)" identifier (argument_list "(plVar13)" ( identifier ))) ;) (if_statement "if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }" if (parenthesized_expression "(((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0))))" ( (binary_expression "((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))" (parenthesized_expression "((plVar13[8] == 0) && (plVar13[9] == 0))" ( (binary_expression "(plVar13[8] == 0) && (plVar13[9] == 0)" (parenthesized_expression "(plVar13[8] == 0)" ( (binary_expression "plVar13[8] == 0" (subscript_expression "plVar13[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(plVar13[9] == 0)" ( (binary_expression "plVar13[9] == 0" (subscript_expression "plVar13[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((plVar13[10] == 0 && (plVar13[0xb] == 0)))" ( (parenthesized_expression "(plVar13[10] == 0 && (plVar13[0xb] == 0))" ( (binary_expression "plVar13[10] == 0 && (plVar13[0xb] == 0)" (binary_expression "plVar13[10] == 0" (subscript_expression "plVar13[10]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(plVar13[0xb] == 0)" ( (binary_expression "plVar13[0xb] == 0" (subscript_expression "plVar13[0xb]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }" { (expression_statement "FUN_0010618a(*plVar13);" (call_expression "FUN_0010618a(*plVar13)" identifier (argument_list "(*plVar13)" ( (pointer_expression "*plVar13" * identifier) ))) ;) (expression_statement "*(undefined1 *)((long)plVar13 + 0x89) = 1;" (assignment_expression "*(undefined1 *)((long)plVar13 + 0x89) = 1" (pointer_expression "*(undefined1 *)((long)plVar13 + 0x89)" * (cast_expression "(undefined1 *)((long)plVar13 + 0x89)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 + 0x89)" ( (binary_expression "(long)plVar13 + 0x89" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "MHD_resume_connection(*plVar13);" (call_expression "MHD_resume_connection(*plVar13)" identifier (argument_list "(*plVar13)" ( (pointer_expression "*plVar13" * identifier) ))) ;) })) (expression_statement "uVar16 = uVar16 + 2;" (assignment_expression "uVar16 = uVar16 + 2" identifier = (binary_expression "uVar16 + 2" identifier + number_literal)) ;) (expression_statement "plVar13 = plVar3;" (assignment_expression "plVar13 = plVar3" identifier = identifier) ;) })) (if_statement "if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }" if (parenthesized_expression "((local_6c != -1) && ((__fds->revents & 1) != 0))" ( (binary_expression "(local_6c != -1) && ((__fds->revents & 1) != 0)" (parenthesized_expression "(local_6c != -1)" ( (binary_expression "local_6c != -1" identifier != number_literal) )) && (parenthesized_expression "((__fds->revents & 1) != 0)" ( (binary_expression "(__fds->revents & 1) != 0" (parenthesized_expression "(__fds->revents & 1)" ( (binary_expression "__fds->revents & 1" (field_expression "__fds->revents" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              FUN_0010bb71(param_1);\n            }" { (expression_statement "FUN_0010bb71(param_1);" (call_expression "FUN_0010bb71(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            free(__fds);\n            uVar8 = 0;\n          }" else (compound_statement "{\n            free(__fds);\n            uVar8 = 0;\n          }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) }))) }))) }))) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;) })) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x178);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x178)" identifier = (pointer_expression "*(int *)(param_1 + 0x178)" * (cast_expression "(int *)(param_1 + 0x178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x178)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x195) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x195) == '\0'" (pointer_expression "*(char *)(param_1 + 0x195)" * (cast_expression "(char *)(param_1 + 0x195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x195)" ( (binary_expression "param_1 + 0x195" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }" { (expression_statement "local_58 = (ulong)CONCAT24(1,iVar7);" (assignment_expression "local_58 = (ulong)CONCAT24(1,iVar7)" identifier = (cast_expression "(ulong)CONCAT24(1,iVar7)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT24(1,iVar7)" identifier (argument_list "(1,iVar7)" ( number_literal , identifier ))))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }" else (compound_statement "{\n      iVar7 = -1;\n      lVar11 = 0;\n    }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "iVar6 = (int)lVar11;" (assignment_expression "iVar6 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 400) == -1)" ( (binary_expression "*(int *)(param_1 + 400) == -1" (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }" { (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) (if_statement "if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;" if (parenthesized_expression "((uVar16 & 0x2000) != 0)" ( (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" ( (binary_expression "uVar16 & 0x2000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0010e768;" goto statement_identifier ;)) (labeled_statement "LAB_0010e770:\n    uVar8 = 1;" statement_identifier : (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;)) (if_statement "if (iVar6 == 0) goto LAB_0010e779;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;)) (expression_statement "iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);" (assignment_expression "iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" identifier = (call_expression "__poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" identifier (argument_list "(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" ( (pointer_expression "&local_58" & identifier) , identifier , (unary_expression "-(uint)((int)param_2 != 0)" - (call_expression "(uint)((int)param_2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_2 != 0)" ( (binary_expression "(int)param_2 != 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar6 < 0) goto LAB_0010e7cb;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0010e7cb;" goto statement_identifier ;)) (if_statement "if (iVar15 != -1) goto LAB_0010e2a7;" if (parenthesized_expression "(iVar15 != -1)" ( (binary_expression "iVar15 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0010e2a7;" goto statement_identifier ;)) }) (else_clause "else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" else (compound_statement "{\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" { (expression_statement "*(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);" (assignment_expression "*(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400)" (pointer_expression "*(int *)(&local_58 + lVar11)" * (cast_expression "(int *)(&local_58 + lVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&local_58 + lVar11)" ( (binary_expression "&local_58 + lVar11" (pointer_expression "&local_58" & identifier) + identifier) )))) = (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) ))))) ;) (expression_statement "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;" (assignment_expression "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1" (pointer_expression "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4)" * (cast_expression "(undefined2 *)((long)&local_58 + lVar11 * 8 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_58 + lVar11 * 8 + 4)" ( (binary_expression "(long)&local_58 + lVar11 * 8 + 4" (binary_expression "(long)&local_58 + lVar11 * 8" (cast_expression "(long)&local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_58" & identifier)) + (binary_expression "lVar11 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = iVar6;" (assignment_expression "iVar15 = iVar6" identifier = identifier) ;) (expression_statement "iVar5 = iVar6 + 1;" (assignment_expression "iVar5 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }" if (parenthesized_expression "((uVar16 & 0x2000) != 0)" ( (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" ( (binary_expression "uVar16 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }" { (labeled_statement "LAB_0010e768:\n      iVar6 = iVar5;" statement_identifier : (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" identifier = identifier) ;)) (expression_statement "FUN_00109311(param_1);" (call_expression "FUN_00109311(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (goto_statement "goto LAB_0010e770;" goto statement_identifier ;) })) (expression_statement "iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);" (assignment_expression "iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" identifier = (call_expression "__poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" identifier (argument_list "(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" ( (pointer_expression "&local_58" & identifier) , (binary_expression "iVar6 + 1" identifier + number_literal) , (unary_expression "-(uint)((int)param_2 != 0)" - (call_expression "(uint)((int)param_2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_2 != 0)" ( (binary_expression "(int)param_2 != 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" { (labeled_statement "LAB_0010e7cb:\n      piVar9 = __errno_location();" statement_identifier : (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }" if (parenthesized_expression "(*piVar9 != 4)" ( (binary_expression "*piVar9 != 4" (pointer_expression "*piVar9" * identifier) != number_literal) )) (compound_statement "{\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }" { (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10)" identifier (argument_list "(param_1,"poll failed: %s\n",pcVar10)" ( identifier , (string_literal ""poll failed: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;) })) (labeled_statement "LAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" statement_identifier : (if_statement "if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" if (parenthesized_expression "((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0)" ( (binary_expression "(*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1)" ( (binary_expression "*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1" (pointer_expression "*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6)" * (cast_expression "(byte *)((long)&local_58 + (long)iVar15 * 8 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_58 + (long)iVar15 * 8 + 6)" ( (binary_expression "(long)&local_58 + (long)iVar15 * 8 + 6" (binary_expression "(long)&local_58 + (long)iVar15 * 8" (cast_expression "(long)&local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_58" & identifier)) + (binary_expression "(long)iVar15 * 8" (cast_expression "(long)iVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" { (expression_statement "read(*(int *)(param_1 + 400),local_60,8);" (call_expression "read(*(int *)(param_1 + 400),local_60,8)" identifier (argument_list "(*(int *)(param_1 + 400),local_60,8)" ( (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) , identifier , number_literal ))) ;) }))) }))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }" if (parenthesized_expression "(((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0))" ( (binary_expression "((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)" (parenthesized_expression "((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1))" ( (binary_expression "(*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)" (parenthesized_expression "(*(char *)(param_1 + 0x194) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x194) == '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" * (cast_expression "(char *)(param_1 + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar8 = 1, iVar7 != -1)" ( (comma_expression "uVar8 = 1, iVar7 != -1" (assignment_expression "uVar8 = 1" identifier = number_literal) , (binary_expression "iVar7 != -1" identifier != number_literal)) ))) )) && (parenthesized_expression "((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)" ( (binary_expression "(*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1)" ( (binary_expression "*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1" (pointer_expression "*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6)" * (cast_expression "(byte *)((long)&local_58 + (long)iVar7 * 8 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_58 + (long)iVar7 * 8 + 6)" ( (binary_expression "(long)&local_58 + (long)iVar7 * 8 + 6" (binary_expression "(long)&local_58 + (long)iVar7 * 8" (cast_expression "(long)&local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_58" & identifier)) + (binary_expression "(long)iVar7 * 8" (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }" { (expression_statement "FUN_0010bb71(param_1);" (call_expression "FUN_0010bb71(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */\n/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */\n\nint MHD_poll(MHD_Daemon *daemon,int may_block)\n\n{\n  pollfd *ppVar1;\n  pollfd *p_00;\n  ushort uVar2;\n  MHD_FLAG MVar3;\n  MHD_ConnectionEventLoopInfo MVar4;\n  long lVar5;\n  MHD_UpgradeResponseHandle *pMVar6;\n  MHD_Connection *pMVar7;\n  int iVar8;\n  pollfd *__fds;\n  MHD_Connection *pMVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  long lVar13;\n  MHD_Connection *pMVar14;\n  MHD_UpgradeResponseHandle *pMVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulonglong ltimeout;\n  uint64_t __b;\n  pollfd p [2];\n  \n  lVar5 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar8 = 0;\n  if (daemon->shutdown != false) goto LAB_0010e779;\n  MVar3 = daemon->options;\n  if ((MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {\n      may_block = 0;\n    }\n    pMVar9 = daemon->connections_head;\n    uVar19 = 0;\n    uVar16 = uVar19;\n    if (pMVar9 != (MHD_Connection *)0x0) {\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }\n    for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;\n        pMVar15 = pMVar15->next) {\n      uVar16 = uVar16 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }\n    else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  p[0].fd = 0;\n  p[0].events = 0;\n  p[0].revents = 0;\n  p[1].fd = 0;\n  p[1].events = 0;\n  p[1].revents = 0;\n  iVar18 = daemon->listen_fd;\n  lVar13 = 0;\n  if (iVar18 != -1) {\n    if (daemon->was_quiesced == false) {\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }\n    else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }\n  }\n  iVar12 = (int)lVar13;\n  iVar8 = (daemon->itc).fd;\n  if (iVar8 == -1) {\n    iVar17 = -1;\n    iVar8 = iVar12;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;\nLAB_0010e770:\n    iVar8 = 1;\n    if (iVar12 == 0) goto LAB_0010e779;\n    iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) goto LAB_0010e7cb;\n    if (iVar17 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    p[lVar13].fd = iVar8;\n    p[lVar13].events = 1;\n    iVar17 = iVar12;\n    iVar8 = iVar12 + 1;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }\n    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }\n  }\n  iVar8 = 0;\n  if (((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0))\n  {\n    MHD_accept_connection(daemon);\n    iVar8 = 1;\n  }\nLAB_0010e779:\n  if (lVar5 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment comment comment (function_definition "int MHD_poll(MHD_Daemon *daemon,int may_block)\n\n{\n  pollfd *ppVar1;\n  pollfd *p_00;\n  ushort uVar2;\n  MHD_FLAG MVar3;\n  MHD_ConnectionEventLoopInfo MVar4;\n  long lVar5;\n  MHD_UpgradeResponseHandle *pMVar6;\n  MHD_Connection *pMVar7;\n  int iVar8;\n  pollfd *__fds;\n  MHD_Connection *pMVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  long lVar13;\n  MHD_Connection *pMVar14;\n  MHD_UpgradeResponseHandle *pMVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulonglong ltimeout;\n  uint64_t __b;\n  pollfd p [2];\n  \n  lVar5 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar8 = 0;\n  if (daemon->shutdown != false) goto LAB_0010e779;\n  MVar3 = daemon->options;\n  if ((MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {\n      may_block = 0;\n    }\n    pMVar9 = daemon->connections_head;\n    uVar19 = 0;\n    uVar16 = uVar19;\n    if (pMVar9 != (MHD_Connection *)0x0) {\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }\n    for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;\n        pMVar15 = pMVar15->next) {\n      uVar16 = uVar16 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }\n    else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  p[0].fd = 0;\n  p[0].events = 0;\n  p[0].revents = 0;\n  p[1].fd = 0;\n  p[1].events = 0;\n  p[1].revents = 0;\n  iVar18 = daemon->listen_fd;\n  lVar13 = 0;\n  if (iVar18 != -1) {\n    if (daemon->was_quiesced == false) {\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }\n    else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }\n  }\n  iVar12 = (int)lVar13;\n  iVar8 = (daemon->itc).fd;\n  if (iVar8 == -1) {\n    iVar17 = -1;\n    iVar8 = iVar12;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;\nLAB_0010e770:\n    iVar8 = 1;\n    if (iVar12 == 0) goto LAB_0010e779;\n    iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) goto LAB_0010e7cb;\n    if (iVar17 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    p[lVar13].fd = iVar8;\n    p[lVar13].events = 1;\n    iVar17 = iVar12;\n    iVar8 = iVar12 + 1;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }\n    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }\n  }\n  iVar8 = 0;\n  if (((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0))\n  {\n    MHD_accept_connection(daemon);\n    iVar8 = 1;\n  }\nLAB_0010e779:\n  if (lVar5 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "MHD_poll(MHD_Daemon *daemon,int may_block)" identifier (parameter_list "(MHD_Daemon *daemon,int may_block)" ( (parameter_declaration "MHD_Daemon *daemon" type_identifier (pointer_declarator "*daemon" * identifier)) , (parameter_declaration "int may_block" primitive_type identifier) ))) (compound_statement "{\n  pollfd *ppVar1;\n  pollfd *p_00;\n  ushort uVar2;\n  MHD_FLAG MVar3;\n  MHD_ConnectionEventLoopInfo MVar4;\n  long lVar5;\n  MHD_UpgradeResponseHandle *pMVar6;\n  MHD_Connection *pMVar7;\n  int iVar8;\n  pollfd *__fds;\n  MHD_Connection *pMVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  long lVar13;\n  MHD_Connection *pMVar14;\n  MHD_UpgradeResponseHandle *pMVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulonglong ltimeout;\n  uint64_t __b;\n  pollfd p [2];\n  \n  lVar5 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar8 = 0;\n  if (daemon->shutdown != false) goto LAB_0010e779;\n  MVar3 = daemon->options;\n  if ((MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {\n      may_block = 0;\n    }\n    pMVar9 = daemon->connections_head;\n    uVar19 = 0;\n    uVar16 = uVar19;\n    if (pMVar9 != (MHD_Connection *)0x0) {\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }\n    for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;\n        pMVar15 = pMVar15->next) {\n      uVar16 = uVar16 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }\n    else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  p[0].fd = 0;\n  p[0].events = 0;\n  p[0].revents = 0;\n  p[1].fd = 0;\n  p[1].events = 0;\n  p[1].revents = 0;\n  iVar18 = daemon->listen_fd;\n  lVar13 = 0;\n  if (iVar18 != -1) {\n    if (daemon->was_quiesced == false) {\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }\n    else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }\n  }\n  iVar12 = (int)lVar13;\n  iVar8 = (daemon->itc).fd;\n  if (iVar8 == -1) {\n    iVar17 = -1;\n    iVar8 = iVar12;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;\nLAB_0010e770:\n    iVar8 = 1;\n    if (iVar12 == 0) goto LAB_0010e779;\n    iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) goto LAB_0010e7cb;\n    if (iVar17 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    p[lVar13].fd = iVar8;\n    p[lVar13].events = 1;\n    iVar17 = iVar12;\n    iVar8 = iVar12 + 1;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }\n    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }\n  }\n  iVar8 = 0;\n  if (((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0))\n  {\n    MHD_accept_connection(daemon);\n    iVar8 = 1;\n  }\nLAB_0010e779:\n  if (lVar5 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "pollfd *ppVar1;" type_identifier (pointer_declarator "*ppVar1" * identifier) ;) (declaration "pollfd *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "MHD_FLAG MVar3;" type_identifier identifier ;) (declaration "MHD_ConnectionEventLoopInfo MVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "MHD_UpgradeResponseHandle *pMVar6;" type_identifier (pointer_declarator "*pMVar6" * identifier) ;) (declaration "MHD_Connection *pMVar7;" type_identifier (pointer_declarator "*pMVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "pollfd *__fds;" type_identifier (pointer_declarator "*__fds" * identifier) ;) (declaration "MHD_Connection *pMVar9;" type_identifier (pointer_declarator "*pMVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "MHD_Connection *pMVar14;" type_identifier (pointer_declarator "*pMVar14" * identifier) ;) (declaration "MHD_UpgradeResponseHandle *pMVar15;" type_identifier (pointer_declarator "*pMVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "ulonglong ltimeout;" type_identifier identifier ;) (declaration "uint64_t __b;" primitive_type identifier ;) (declaration "pollfd p [2];" type_identifier (array_declarator "p [2]" identifier [ number_literal ]) ;) (expression_statement "lVar5 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar5 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (daemon->shutdown != false) goto LAB_0010e779;" if (parenthesized_expression "(daemon->shutdown != false)" ( (binary_expression "daemon->shutdown != false" (field_expression "daemon->shutdown" identifier -> field_identifier) != false) )) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;)) (expression_statement "MVar3 = daemon->options;" (assignment_expression "MVar3 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if ((MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {\n      may_block = 0;\n    }\n    pMVar9 = daemon->connections_head;\n    uVar19 = 0;\n    uVar16 = uVar19;\n    if (pMVar9 != (MHD_Connection *)0x0) {\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }\n    for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;\n        pMVar15 = pMVar15->next) {\n      uVar16 = uVar16 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }\n    else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" if (parenthesized_expression "((MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(MVar3 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(MVar3 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar3 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) == identifier) )) (compound_statement "{\n    if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {\n      may_block = 0;\n    }\n    pMVar9 = daemon->connections_head;\n    uVar19 = 0;\n    uVar16 = uVar19;\n    if (pMVar9 != (MHD_Connection *)0x0) {\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }\n    for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;\n        pMVar15 = pMVar15->next) {\n      uVar16 = uVar16 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }\n    else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" { (if_statement "if (((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)) {\n      may_block = 0;\n    }" if (parenthesized_expression "(((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1))" ( (binary_expression "((MVar3 & 0x2000) != MHD_NO_FLAG) &&\n       (iVar8 = resume_suspended_connections(daemon), iVar8 == 1)" (parenthesized_expression "((MVar3 & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(MVar3 & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(MVar3 & 0x2000)" ( (binary_expression "MVar3 & 0x2000" identifier & number_literal) )) != identifier) )) && (parenthesized_expression "(iVar8 = resume_suspended_connections(daemon), iVar8 == 1)" ( (comma_expression "iVar8 = resume_suspended_connections(daemon), iVar8 == 1" (assignment_expression "iVar8 = resume_suspended_connections(daemon)" identifier = (call_expression "resume_suspended_connections(daemon)" identifier (argument_list "(daemon)" ( identifier )))) , (binary_expression "iVar8 == 1" identifier == number_literal)) ))) )) (compound_statement "{\n      may_block = 0;\n    }" { (expression_statement "may_block = 0;" (assignment_expression "may_block = 0" identifier = number_literal) ;) })) (expression_statement "pMVar9 = daemon->connections_head;" (assignment_expression "pMVar9 = daemon->connections_head" identifier = (field_expression "daemon->connections_head" identifier -> field_identifier)) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = uVar19;" (assignment_expression "uVar16 = uVar19" identifier = identifier) ;) (if_statement "if (pMVar9 != (MHD_Connection *)0x0) {\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }" if (parenthesized_expression "(pMVar9 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar9 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar16 = 0;\n      do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);\n    }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      } while (pMVar9 != (MHD_Connection *)0x0);" do (compound_statement "{\n        uVar16 = uVar16 + 1;\n        pMVar9 = pMVar9->next;\n      }" { (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "pMVar9 = pMVar9->next;" (assignment_expression "pMVar9 = pMVar9->next" identifier = (field_expression "pMVar9->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pMVar9 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar9 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (for_statement "for (pMVar15 = daemon->urh_head; pMVar15 != (MHD_UpgradeResponseHandle *)0x0;\n        pMVar15 = pMVar15->next) {\n      uVar16 = uVar16 + 2;\n    }" for ( (assignment_expression "pMVar15 = daemon->urh_head" identifier = (field_expression "daemon->urh_head" identifier -> field_identifier)) ; (binary_expression "pMVar15 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pMVar15 = pMVar15->next" identifier = (field_expression "pMVar15->next" identifier -> field_identifier)) ) (compound_statement "{\n      uVar16 = uVar16 + 2;\n    }" { (expression_statement "uVar16 = uVar16 + 2;" (assignment_expression "uVar16 = uVar16 + 2" identifier = (binary_expression "uVar16 + 2" identifier + number_literal)) ;) })) (expression_statement "__fds = (pollfd *)calloc((ulong)(uVar16 + 2),8);" (assignment_expression "__fds = (pollfd *)calloc((ulong)(uVar16 + 2),8)" identifier = (cast_expression "(pollfd *)calloc((ulong)(uVar16 + 2),8)" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc((ulong)(uVar16 + 2),8)" identifier (argument_list "((ulong)(uVar16 + 2),8)" ( (call_expression "(ulong)(uVar16 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 + 2)" ( (binary_expression "uVar16 + 2" identifier + number_literal) ))) , number_literal ))))) ;) (if_statement "if (__fds == (pollfd *)0x0) {\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }\n    else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(__fds == (pollfd *)0x0)" ( (binary_expression "__fds == (pollfd *)0x0" identifier == (cast_expression "(pollfd *)0x0" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar10 = __errno_location();\n      pcVar11 = strerror(*piVar10);\n      MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);\n      iVar8 = 0;\n    }" { (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar11 = strerror(*piVar10);" (assignment_expression "pcVar11 = strerror(*piVar10)" identifier = (call_expression "strerror(*piVar10)" identifier (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11);" (call_expression "MHD_DLOG(daemon,"Error allocating memory: %s\n",pcVar11)" identifier (argument_list "(daemon,"Error allocating memory: %s\n",pcVar11)" ( identifier , (string_literal ""Error allocating memory: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      local_6c = daemon->listen_fd;\n      local_78 = uVar19;\n      if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = (daemon->itc).fd;\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }\n      pMVar9 = daemon->connections_tail;\n      if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }\n      pMVar15 = daemon->urh_tail;\n      if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }\n      if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }\n    }" { (expression_statement "local_6c = daemon->listen_fd;" (assignment_expression "local_6c = daemon->listen_fd" identifier = (field_expression "daemon->listen_fd" identifier -> field_identifier)) ;) (expression_statement "local_78 = uVar19;" (assignment_expression "local_78 = uVar19" identifier = identifier) ;) (if_statement "if (local_6c != -1) {\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" if (parenthesized_expression "(local_6c != -1)" ( (binary_expression "local_6c != -1" identifier != number_literal) )) (compound_statement "{\n        if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" { (if_statement "if (daemon->was_quiesced == false) {\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }" if (parenthesized_expression "(daemon->was_quiesced == false)" ( (binary_expression "daemon->was_quiesced == false" (field_expression "daemon->was_quiesced" identifier -> field_identifier) == false) )) (compound_statement "{\n          if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }" { (if_statement "if (daemon->connections < daemon->connection_limit) {\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }" if (parenthesized_expression "(daemon->connections < daemon->connection_limit)" ( (binary_expression "daemon->connections < daemon->connection_limit" (field_expression "daemon->connections" identifier -> field_identifier) < (field_expression "daemon->connection_limit" identifier -> field_identifier)) )) (compound_statement "{\n            if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }" { (if_statement "if (daemon->at_limit == false) {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }" if (parenthesized_expression "(daemon->at_limit == false)" ( (binary_expression "daemon->at_limit == false" (field_expression "daemon->at_limit" identifier -> field_identifier) == false) )) (compound_statement "{\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }" { (expression_statement "__fds->fd = local_6c;" (assignment_expression "__fds->fd = local_6c" (field_expression "__fds->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "__fds->events = 1;" (assignment_expression "__fds->events = 1" (field_expression "__fds->events" identifier -> field_identifier) = number_literal) ;) (expression_statement "__fds->revents = 0;" (assignment_expression "__fds->revents = 0" (field_expression "__fds->revents" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              local_6c = -1;\n            }" else (compound_statement "{\n              local_6c = -1;\n            }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n            local_6c = -1;\n          }" else (compound_statement "{\n            local_6c = -1;\n          }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          local_6c = -1;\n        }" else (compound_statement "{\n          local_6c = -1;\n        }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) })) (expression_statement "local_70 = (daemon->itc).fd;" (assignment_expression "local_70 = (daemon->itc).fd" identifier = (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" if (parenthesized_expression "(local_70 != 0xffffffff)" ( (binary_expression "local_70 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" { (expression_statement "ppVar1 = __fds + local_78;" (assignment_expression "ppVar1 = __fds + local_78" identifier = (binary_expression "__fds + local_78" identifier + identifier)) ;) (expression_statement "ppVar1->fd = local_70;" (assignment_expression "ppVar1->fd = local_70" (field_expression "ppVar1->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar1->events = 1;" (assignment_expression "ppVar1->events = 1" (field_expression "ppVar1->events" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar1->revents = 0;" (assignment_expression "ppVar1->revents = 0" (field_expression "ppVar1->revents" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_70 = local_78;" (assignment_expression "local_70 = local_78" identifier = identifier) ;) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) })) (if_statement "if ((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)) {\n        may_block = 0x7fffffff;\n      }" if (parenthesized_expression "((((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout))" ( (binary_expression "(((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)) &&\n         (may_block = (int)ltimeout, 0x7fffffff < ltimeout)" (parenthesized_expression "(((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1))" ( (binary_expression "((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) &&\n          (iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)" (parenthesized_expression "((may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG))" ( (binary_expression "(may_block != 0) &&\n           (may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" (parenthesized_expression "(may_block != 0)" ( (binary_expression "may_block != 0" identifier != number_literal) )) && (parenthesized_expression "(may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (comma_expression "may_block = -1, (daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (assignment_expression "may_block = -1" identifier = number_literal) , (binary_expression "(daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "daemon->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) == identifier)) ))) )) && (parenthesized_expression "(iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1)" ( (comma_expression "iVar8 = MHD_get_timeout(daemon,&ltimeout), iVar8 == 1" (assignment_expression "iVar8 = MHD_get_timeout(daemon,&ltimeout)" identifier = (call_expression "MHD_get_timeout(daemon,&ltimeout)" identifier (argument_list "(daemon,&ltimeout)" ( identifier , (pointer_expression "&ltimeout" & identifier) )))) , (binary_expression "iVar8 == 1" identifier == number_literal)) ))) )) && (parenthesized_expression "(may_block = (int)ltimeout, 0x7fffffff < ltimeout)" ( (comma_expression "may_block = (int)ltimeout, 0x7fffffff < ltimeout" (assignment_expression "may_block = (int)ltimeout" identifier = (cast_expression "(int)ltimeout" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "0x7fffffff < ltimeout" number_literal < identifier)) ))) )) (compound_statement "{\n        may_block = 0x7fffffff;\n      }" { (expression_statement "may_block = 0x7fffffff;" (assignment_expression "may_block = 0x7fffffff" identifier = number_literal) ;) })) (expression_statement "pMVar9 = daemon->connections_tail;" (assignment_expression "pMVar9 = daemon->connections_tail" identifier = (field_expression "daemon->connections_tail" identifier -> field_identifier)) ;) (if_statement "if (pMVar9 == (MHD_Connection *)0x0) {\n        iVar8 = 0;\n      }\n      else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }" if (parenthesized_expression "(pMVar9 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar9 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = 0;\n      }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }" else (compound_statement "{\n        iVar8 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);\n      }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        } while (pMVar9 != (MHD_Connection *)0x0);" do (compound_statement "{\n          ppVar1 = __fds + (local_78 + iVar8);\n          ppVar1->fd = pMVar9->socket_fd;\n          MVar4 = pMVar9->event_loop_info;\n          if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }\n          iVar8 = iVar8 + 1;\n          pMVar9 = pMVar9->prev;\n        }" { (expression_statement "ppVar1 = __fds + (local_78 + iVar8);" (assignment_expression "ppVar1 = __fds + (local_78 + iVar8)" identifier = (binary_expression "__fds + (local_78 + iVar8)" identifier + (parenthesized_expression "(local_78 + iVar8)" ( (binary_expression "local_78 + iVar8" identifier + identifier) )))) ;) (expression_statement "ppVar1->fd = pMVar9->socket_fd;" (assignment_expression "ppVar1->fd = pMVar9->socket_fd" (field_expression "ppVar1->fd" identifier -> field_identifier) = (field_expression "pMVar9->socket_fd" identifier -> field_identifier)) ;) (expression_statement "MVar4 = pMVar9->event_loop_info;" (assignment_expression "MVar4 = pMVar9->event_loop_info" identifier = (field_expression "pMVar9->event_loop_info" identifier -> field_identifier)) ;) (if_statement "if (MVar4 == MHD_EVENT_LOOP_INFO_WRITE) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" if (parenthesized_expression "(MVar4 == MHD_EVENT_LOOP_INFO_WRITE)" ( (binary_expression "MVar4 == MHD_EVENT_LOOP_INFO_WRITE" identifier == identifier) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 6;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 6;" (assignment_expression "ppVar1->events = ppVar1->events | 6" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 6" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" else (if_statement "if (MVar4 == MHD_EVENT_LOOP_INFO_READ) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" if (parenthesized_expression "(MVar4 == MHD_EVENT_LOOP_INFO_READ)" ( (binary_expression "MVar4 == MHD_EVENT_LOOP_INFO_READ" identifier == identifier) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 3;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 3;" (assignment_expression "ppVar1->events = ppVar1->events | 3" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 3" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" else (if_statement "if (MVar4 == MHD_EVENT_LOOP_INFO_BLOCK) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" if (parenthesized_expression "(MVar4 == MHD_EVENT_LOOP_INFO_BLOCK)" ( (binary_expression "MVar4 == MHD_EVENT_LOOP_INFO_BLOCK" identifier == identifier) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 2;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 2;" (assignment_expression "ppVar1->events = ppVar1->events | 2" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 2" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" else (if_statement "if (MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP) {\n            may_block = 0;\n          }" if (parenthesized_expression "(MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP)" ( (binary_expression "MVar4 == MHD_EVENT_LOOP_INFO_CLEANUP" identifier == identifier) )) (compound_statement "{\n            may_block = 0;\n          }" { (expression_statement "may_block = 0;" (assignment_expression "may_block = 0" identifier = number_literal) ;) })))))))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pMVar9 = pMVar9->prev;" (assignment_expression "pMVar9 = pMVar9->prev" identifier = (field_expression "pMVar9->prev" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pMVar9 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar9 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "pMVar15 = daemon->urh_tail;" (assignment_expression "pMVar15 = daemon->urh_tail" identifier = (field_expression "daemon->urh_tail" identifier -> field_identifier)) ;) (if_statement "if (pMVar15 != (MHD_UpgradeResponseHandle *)0x0) {\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }" if (parenthesized_expression "(pMVar15 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar15 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_74 = iVar8 + local_78;\n        do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);\n      }" { (expression_statement "local_74 = iVar8 + local_78;" (assignment_expression "local_74 = iVar8 + local_78" identifier = (binary_expression "iVar8 + local_78" identifier + identifier)) ;) (do_statement "do {\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        } while (pMVar15 != (MHD_UpgradeResponseHandle *)0x0);" do (compound_statement "{\n          p_00 = (pollfd *)(__fds + local_74);\n          p_00->fd = pMVar15->connection->socket_fd;\n          p_00[1].fd = (pMVar15->mhd).socket;\n          urh_update_pollfd(pMVar15,p_00);\n          pMVar15 = pMVar15->prev;\n          local_74 = local_74 + 2;\n        }" { (expression_statement "p_00 = (pollfd *)(__fds + local_74);" (assignment_expression "p_00 = (pollfd *)(__fds + local_74)" identifier = (cast_expression "(pollfd *)(__fds + local_74)" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__fds + local_74)" ( (binary_expression "__fds + local_74" identifier + identifier) )))) ;) (expression_statement "p_00->fd = pMVar15->connection->socket_fd;" (assignment_expression "p_00->fd = pMVar15->connection->socket_fd" (field_expression "p_00->fd" identifier -> field_identifier) = (field_expression "pMVar15->connection->socket_fd" (field_expression "pMVar15->connection" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "p_00[1].fd = (pMVar15->mhd).socket;" (assignment_expression "p_00[1].fd = (pMVar15->mhd).socket" (field_expression "p_00[1].fd" (subscript_expression "p_00[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "(pMVar15->mhd).socket" (parenthesized_expression "(pMVar15->mhd)" ( (field_expression "pMVar15->mhd" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "urh_update_pollfd(pMVar15,p_00);" (call_expression "urh_update_pollfd(pMVar15,p_00)" identifier (argument_list "(pMVar15,p_00)" ( identifier , identifier ))) ;) (expression_statement "pMVar15 = pMVar15->prev;" (assignment_expression "pMVar15 = pMVar15->prev" identifier = (field_expression "pMVar15->prev" identifier -> field_identifier)) ;) (expression_statement "local_74 = local_74 + 2;" (assignment_expression "local_74 = local_74 + 2" identifier = (binary_expression "local_74 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pMVar15 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar15 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (local_78 + uVar16 == 0) {\n        free(__fds);\n        iVar8 = 1;\n      }\n      else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(local_78 + uVar16 == 0)" ( (binary_expression "local_78 + uVar16 == 0" (binary_expression "local_78 + uVar16" identifier + identifier) == number_literal) )) (compound_statement "{\n        free(__fds);\n        iVar8 = 1;\n      }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }" else (compound_statement "{\n        iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);\n        if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n      }" { (expression_statement "iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block);" (assignment_expression "iVar8 = poll(__fds,(ulong)(local_78 + uVar16),may_block)" identifier = (call_expression "poll(__fds,(ulong)(local_78 + uVar16),may_block)" identifier (argument_list "(__fds,(ulong)(local_78 + uVar16),may_block)" ( identifier , (call_expression "(ulong)(local_78 + uVar16)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_78 + uVar16)" ( (binary_expression "local_78 + uVar16" identifier + identifier) ))) , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }\n        else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n          piVar10 = __errno_location();\n          if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }\n        }" { (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar10 == 4) {\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }" if (parenthesized_expression "(*piVar10 == 4)" ( (binary_expression "*piVar10 == 4" (pointer_expression "*piVar10" * identifier) == number_literal) )) (compound_statement "{\n            free(__fds);\n            iVar8 = 1;\n          }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }" else (compound_statement "{\n            pcVar11 = strerror(*piVar10);\n            MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n            free(__fds);\n            iVar8 = 0;\n          }" { (expression_statement "pcVar11 = strerror(*piVar10);" (assignment_expression "pcVar11 = strerror(*piVar10)" identifier = (call_expression "strerror(*piVar10)" identifier (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);" (call_expression "MHD_DLOG(daemon,"poll failed: %s\n",pcVar11)" identifier (argument_list "(daemon,"poll failed: %s\n",pcVar11)" ( identifier , (string_literal ""poll failed: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }" else (compound_statement "{\n          daemon->data_already_pending = false;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }\n          if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }\n        }" { (expression_statement "daemon->data_already_pending = false;" (assignment_expression "daemon->data_already_pending = false" (field_expression "daemon->data_already_pending" identifier -> field_identifier) = false) ;) (if_statement "if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read((daemon->itc).fd,&__b,8);\n          }" if (parenthesized_expression "((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0))" ( (binary_expression "(local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)" (parenthesized_expression "(local_70 != 0xffffffff)" ( (binary_expression "local_70 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "((__fds[(int)local_70].revents & 1) != 0)" ( (binary_expression "(__fds[(int)local_70].revents & 1) != 0" (parenthesized_expression "(__fds[(int)local_70].revents & 1)" ( (binary_expression "__fds[(int)local_70].revents & 1" (field_expression "__fds[(int)local_70].revents" (subscript_expression "__fds[(int)local_70]" identifier [ (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            read((daemon->itc).fd,&__b,8);\n          }" { (expression_statement "read((daemon->itc).fd,&__b,8);" (call_expression "read((daemon->itc).fd,&__b,8)" identifier (argument_list "((daemon->itc).fd,&__b,8)" ( (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) , (pointer_expression "&__b" & identifier) , number_literal ))) ;) })) (if_statement "if (daemon->shutdown == false) {\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }\n          else {\n            free(__fds);\n            iVar8 = 0;\n          }" if (parenthesized_expression "(daemon->shutdown == false)" ( (binary_expression "daemon->shutdown == false" (field_expression "daemon->shutdown" identifier -> field_identifier) == false) )) (compound_statement "{\n            pMVar9 = daemon->connections_tail;\n            if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }\n            uVar19 = local_78 + 1 + uVar19;\n            pMVar15 = daemon->urh_tail;\n            while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }\n            free(__fds);\n            iVar8 = 1;\n          }" { (expression_statement "pMVar9 = daemon->connections_tail;" (assignment_expression "pMVar9 = daemon->connections_tail" identifier = (field_expression "daemon->connections_tail" identifier -> field_identifier)) ;) (if_statement "if (pMVar9 != (MHD_Connection *)0x0) {\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }" if (parenthesized_expression "(pMVar9 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar9 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pMVar7 = pMVar9->prev;\n              if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }\n            }" { (expression_statement "pMVar7 = pMVar9->prev;" (assignment_expression "pMVar7 = pMVar9->prev" identifier = (field_expression "pMVar9->prev" identifier -> field_identifier)) ;) (if_statement "if (uVar16 == 0) {\n                uVar19 = 0;\n              }\n              else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar19 = 0;\n              }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }" else (compound_statement "{\n                do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));\n              }" { (do_statement "do {\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                } while ((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16));" do (compound_statement "{\n                  pMVar14 = pMVar7;\n                  if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }\n                }" { (expression_statement "pMVar14 = pMVar7;" (assignment_expression "pMVar14 = pMVar7" identifier = identifier) ;) (if_statement "if (__fds[local_78 + uVar19].fd == pMVar9->socket_fd) {\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }" if (parenthesized_expression "(__fds[local_78 + uVar19].fd == pMVar9->socket_fd)" ( (binary_expression "__fds[local_78 + uVar19].fd == pMVar9->socket_fd" (field_expression "__fds[local_78 + uVar19].fd" (subscript_expression "__fds[local_78 + uVar19]" identifier [ (binary_expression "local_78 + uVar19" identifier + identifier) ]) . field_identifier) == (field_expression "pMVar9->socket_fd" identifier -> field_identifier)) )) (compound_statement "{\n                    uVar2 = __fds[local_78 + uVar19].revents;\n                    call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);\n                    uVar19 = uVar19 + 1;\n                  }" { (expression_statement "uVar2 = __fds[local_78 + uVar19].revents;" (assignment_expression "uVar2 = __fds[local_78 + uVar19].revents" identifier = (field_expression "__fds[local_78 + uVar19].revents" (subscript_expression "__fds[local_78 + uVar19]" identifier [ (binary_expression "local_78 + uVar19" identifier + identifier) ]) . field_identifier)) ;) (expression_statement "call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0);" (call_expression "call_handlers(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0)" identifier (argument_list "(pMVar9,(_Bool)((byte)uVar2 & 1),(_Bool)((byte)(uVar2 >> 2) & 1),\n                                  (uVar2 & 0xba) != 0)" ( identifier , (call_expression "(_Bool)((byte)uVar2 & 1)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((byte)uVar2 & 1)" ( (binary_expression "(byte)uVar2 & 1" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) , (call_expression "(_Bool)((byte)(uVar2 >> 2) & 1)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((byte)(uVar2 >> 2) & 1)" ( (binary_expression "(byte)(uVar2 >> 2) & 1" (call_expression "(byte)(uVar2 >> 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar2 >> 2)" ( (binary_expression "uVar2 >> 2" identifier >> number_literal) ))) & number_literal) ))) , (binary_expression "(uVar2 & 0xba) != 0" (parenthesized_expression "(uVar2 & 0xba)" ( (binary_expression "uVar2 & 0xba" identifier & number_literal) )) != number_literal) ))) ;) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "((pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16))" ( (binary_expression "(pMVar14 != (MHD_Connection *)0x0) &&\n                        (pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16)" (parenthesized_expression "(pMVar14 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar14 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16)" ( (comma_expression "pMVar7 = pMVar14->prev, pMVar9 = pMVar14, uVar19 < uVar16" (assignment_expression "pMVar7 = pMVar14->prev" identifier = (field_expression "pMVar14->prev" identifier -> field_identifier)) , (comma_expression "pMVar9 = pMVar14, uVar19 < uVar16" (assignment_expression "pMVar9 = pMVar14" identifier = identifier) , (binary_expression "uVar19 < uVar16" identifier < identifier))) ))) )) ;) }))) })) (expression_statement "uVar19 = local_78 + 1 + uVar19;" (assignment_expression "uVar19 = local_78 + 1 + uVar19" identifier = (binary_expression "local_78 + 1 + uVar19" (binary_expression "local_78 + 1" identifier + number_literal) + identifier)) ;) (expression_statement "pMVar15 = daemon->urh_tail;" (assignment_expression "pMVar15 = daemon->urh_tail" identifier = (field_expression "daemon->urh_tail" identifier -> field_identifier)) ;) (while_statement "while ((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))) {\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }" while (parenthesized_expression "((~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0)))" ( (parenthesized_expression "(~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0))" ( (binary_expression "~local_78 + uVar19 < uVar16 && (pMVar15 != (MHD_UpgradeResponseHandle *)0x0)" (binary_expression "~local_78 + uVar19 < uVar16" (binary_expression "~local_78 + uVar19" (unary_expression "~local_78" ~ identifier) + identifier) < identifier) && (parenthesized_expression "(pMVar15 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar15 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) )) (compound_statement "{\n              pMVar6 = pMVar15->prev;\n              if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;\n              urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));\n              process_urh(pMVar15);\n              if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }\n              uVar19 = uVar19 + 2;\n              pMVar15 = pMVar6;\n            }" { (expression_statement "pMVar6 = pMVar15->prev;" (assignment_expression "pMVar6 = pMVar15->prev" identifier = (field_expression "pMVar15->prev" identifier -> field_identifier)) ;) (if_statement "if ((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)) break;" if (parenthesized_expression "((((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket))" ( (binary_expression "(((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd) ||\n                 (__fds[uVar19].fd != (pMVar15->mhd).socket)" (parenthesized_expression "(((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd)" ( (binary_expression "((pollfd *)(__fds + (uVar19 - 1)))->fd != pMVar15->connection->socket_fd" (field_expression "((pollfd *)(__fds + (uVar19 - 1)))->fd" (parenthesized_expression "((pollfd *)(__fds + (uVar19 - 1)))" ( (cast_expression "(pollfd *)(__fds + (uVar19 - 1))" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__fds + (uVar19 - 1))" ( (binary_expression "__fds + (uVar19 - 1)" identifier + (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) ))) ))) )) -> field_identifier) != (field_expression "pMVar15->connection->socket_fd" (field_expression "pMVar15->connection" identifier -> field_identifier) -> field_identifier)) )) || (parenthesized_expression "(__fds[uVar19].fd != (pMVar15->mhd).socket)" ( (binary_expression "__fds[uVar19].fd != (pMVar15->mhd).socket" (field_expression "__fds[uVar19].fd" (subscript_expression "__fds[uVar19]" identifier [ identifier ]) . field_identifier) != (field_expression "(pMVar15->mhd).socket" (parenthesized_expression "(pMVar15->mhd)" ( (field_expression "pMVar15->mhd" identifier -> field_identifier) )) . field_identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)));" (call_expression "urh_from_pollfd(pMVar15,(pollfd *)(__fds + (uVar19 - 1)))" identifier (argument_list "(pMVar15,(pollfd *)(__fds + (uVar19 - 1)))" ( identifier , (cast_expression "(pollfd *)(__fds + (uVar19 - 1))" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__fds + (uVar19 - 1))" ( (binary_expression "__fds + (uVar19 - 1)" identifier + (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) ))) ))) ))) ;) (expression_statement "process_urh(pMVar15);" (call_expression "process_urh(pMVar15)" identifier (argument_list "(pMVar15)" ( identifier ))) ;) (if_statement "if ((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)) {\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }" if (parenthesized_expression "((((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0))" ( (binary_expression "(((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)) && (pMVar15->out_buffer_used == 0)" (parenthesized_expression "(((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0))" ( (binary_expression "((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)) &&\n                  (pMVar15->in_buffer_used == 0)" (parenthesized_expression "((pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0))" ( (binary_expression "(pMVar15->in_buffer_size == 0) && (pMVar15->out_buffer_size == 0)" (parenthesized_expression "(pMVar15->in_buffer_size == 0)" ( (binary_expression "pMVar15->in_buffer_size == 0" (field_expression "pMVar15->in_buffer_size" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(pMVar15->out_buffer_size == 0)" ( (binary_expression "pMVar15->out_buffer_size == 0" (field_expression "pMVar15->out_buffer_size" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pMVar15->in_buffer_used == 0)" ( (binary_expression "pMVar15->in_buffer_used == 0" (field_expression "pMVar15->in_buffer_used" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pMVar15->out_buffer_used == 0)" ( (binary_expression "pMVar15->out_buffer_used == 0" (field_expression "pMVar15->out_buffer_used" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n                MHD_connection_finish_forward_(pMVar15->connection);\n                pMVar15->clean_ready = true;\n                MHD_resume_connection(pMVar15->connection);\n              }" { (expression_statement "MHD_connection_finish_forward_(pMVar15->connection);" (call_expression "MHD_connection_finish_forward_(pMVar15->connection)" identifier (argument_list "(pMVar15->connection)" ( (field_expression "pMVar15->connection" identifier -> field_identifier) ))) ;) (expression_statement "pMVar15->clean_ready = true;" (assignment_expression "pMVar15->clean_ready = true" (field_expression "pMVar15->clean_ready" identifier -> field_identifier) = true) ;) (expression_statement "MHD_resume_connection(pMVar15->connection);" (call_expression "MHD_resume_connection(pMVar15->connection)" identifier (argument_list "(pMVar15->connection)" ( (field_expression "pMVar15->connection" identifier -> field_identifier) ))) ;) })) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (expression_statement "pMVar15 = pMVar6;" (assignment_expression "pMVar15 = pMVar6" identifier = identifier) ;) })) (if_statement "if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              MHD_accept_connection(daemon);\n            }" if (parenthesized_expression "((local_6c != -1) && ((__fds->revents & 1) != 0))" ( (binary_expression "(local_6c != -1) && ((__fds->revents & 1) != 0)" (parenthesized_expression "(local_6c != -1)" ( (binary_expression "local_6c != -1" identifier != number_literal) )) && (parenthesized_expression "((__fds->revents & 1) != 0)" ( (binary_expression "(__fds->revents & 1) != 0" (parenthesized_expression "(__fds->revents & 1)" ( (binary_expression "__fds->revents & 1" (field_expression "__fds->revents" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              MHD_accept_connection(daemon);\n            }" { (expression_statement "MHD_accept_connection(daemon);" (call_expression "MHD_accept_connection(daemon)" identifier (argument_list "(daemon)" ( identifier ))) ;) })) (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            free(__fds);\n            iVar8 = 0;\n          }" else (compound_statement "{\n            free(__fds);\n            iVar8 = 0;\n          }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) }))) }))) }))) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;) })) (expression_statement "p[0].fd = 0;" (assignment_expression "p[0].fd = 0" (field_expression "p[0].fd" (subscript_expression "p[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "p[0].events = 0;" (assignment_expression "p[0].events = 0" (field_expression "p[0].events" (subscript_expression "p[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "p[0].revents = 0;" (assignment_expression "p[0].revents = 0" (field_expression "p[0].revents" (subscript_expression "p[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "p[1].fd = 0;" (assignment_expression "p[1].fd = 0" (field_expression "p[1].fd" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "p[1].events = 0;" (assignment_expression "p[1].events = 0" (field_expression "p[1].events" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "p[1].revents = 0;" (assignment_expression "p[1].revents = 0" (field_expression "p[1].revents" (subscript_expression "p[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "iVar18 = daemon->listen_fd;" (assignment_expression "iVar18 = daemon->listen_fd" identifier = (field_expression "daemon->listen_fd" identifier -> field_identifier)) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (if_statement "if (iVar18 != -1) {\n    if (daemon->was_quiesced == false) {\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }\n    else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }\n  }" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (compound_statement "{\n    if (daemon->was_quiesced == false) {\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }\n    else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }\n  }" { (if_statement "if (daemon->was_quiesced == false) {\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }\n    else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }" if (parenthesized_expression "(daemon->was_quiesced == false)" ( (binary_expression "daemon->was_quiesced == false" (field_expression "daemon->was_quiesced" identifier -> field_identifier) == false) )) (compound_statement "{\n      p[0].events = 1;\n      p[0].fd = iVar18;\n      p[0].revents = 0;\n      iVar18 = 0;\n      lVar13 = 1;\n    }" { (expression_statement "p[0].events = 1;" (assignment_expression "p[0].events = 1" (field_expression "p[0].events" (subscript_expression "p[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "p[0].fd = iVar18;" (assignment_expression "p[0].fd = iVar18" (field_expression "p[0].fd" (subscript_expression "p[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "p[0].revents = 0;" (assignment_expression "p[0].revents = 0" (field_expression "p[0].revents" (subscript_expression "p[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "lVar13 = 1;" (assignment_expression "lVar13 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = -1;\n      lVar13 = 0;\n    }" else (compound_statement "{\n      iVar18 = -1;\n      lVar13 = 0;\n    }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) }))) })) (expression_statement "iVar12 = (int)lVar13;" (assignment_expression "iVar12 = (int)lVar13" identifier = (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = (daemon->itc).fd;" (assignment_expression "iVar8 = (daemon->itc).fd" identifier = (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (iVar8 == -1) {\n    iVar17 = -1;\n    iVar8 = iVar12;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;\nLAB_0010e770:\n    iVar8 = 1;\n    if (iVar12 == 0) goto LAB_0010e779;\n    iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) goto LAB_0010e7cb;\n    if (iVar17 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    p[lVar13].fd = iVar8;\n    p[lVar13].events = 1;\n    iVar17 = iVar12;\n    iVar8 = iVar12 + 1;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }\n    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    iVar17 = -1;\n    iVar8 = iVar12;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;\nLAB_0010e770:\n    iVar8 = 1;\n    if (iVar12 == 0) goto LAB_0010e779;\n    iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) goto LAB_0010e7cb;\n    if (iVar17 != -1) goto LAB_0010e2a7;\n  }" { (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) (expression_statement "iVar8 = iVar12;" (assignment_expression "iVar8 = iVar12" identifier = identifier) ;) (if_statement "if ((MVar3 & 0x2000) != MHD_NO_FLAG) goto LAB_0010e768;" if (parenthesized_expression "((MVar3 & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(MVar3 & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(MVar3 & 0x2000)" ( (binary_expression "MVar3 & 0x2000" identifier & number_literal) )) != identifier) )) (goto_statement "goto LAB_0010e768;" goto statement_identifier ;)) (labeled_statement "LAB_0010e770:\n    iVar8 = 1;" statement_identifier : (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;)) (if_statement "if (iVar12 == 0) goto LAB_0010e779;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;)) (expression_statement "iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10);" (assignment_expression "iVar8 = __poll_chk(p,iVar12,-(uint)(may_block != 0),0x10)" identifier = (call_expression "__poll_chk(p,iVar12,-(uint)(may_block != 0),0x10)" identifier (argument_list "(p,iVar12,-(uint)(may_block != 0),0x10)" ( identifier , identifier , (unary_expression "-(uint)(may_block != 0)" - (call_expression "(uint)(may_block != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(may_block != 0)" ( (binary_expression "may_block != 0" identifier != number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar8 < 0) goto LAB_0010e7cb;" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0010e7cb;" goto statement_identifier ;)) (if_statement "if (iVar17 != -1) goto LAB_0010e2a7;" if (parenthesized_expression "(iVar17 != -1)" ( (binary_expression "iVar17 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0010e2a7;" goto statement_identifier ;)) }) (else_clause "else {\n    p[lVar13].fd = iVar8;\n    p[lVar13].events = 1;\n    iVar17 = iVar12;\n    iVar8 = iVar12 + 1;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }\n    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }\n  }" else (compound_statement "{\n    p[lVar13].fd = iVar8;\n    p[lVar13].events = 1;\n    iVar17 = iVar12;\n    iVar8 = iVar12 + 1;\n    if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }\n    iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);\n    if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }\n  }" { (expression_statement "p[lVar13].fd = iVar8;" (assignment_expression "p[lVar13].fd = iVar8" (field_expression "p[lVar13].fd" (subscript_expression "p[lVar13]" identifier [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "p[lVar13].events = 1;" (assignment_expression "p[lVar13].events = 1" (field_expression "p[lVar13].events" (subscript_expression "p[lVar13]" identifier [ identifier ]) . field_identifier) = number_literal) ;) (expression_statement "iVar17 = iVar12;" (assignment_expression "iVar17 = iVar12" identifier = identifier) ;) (expression_statement "iVar8 = iVar12 + 1;" (assignment_expression "iVar8 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((MVar3 & 0x2000) != MHD_NO_FLAG) {\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }" if (parenthesized_expression "((MVar3 & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(MVar3 & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(MVar3 & 0x2000)" ( (binary_expression "MVar3 & 0x2000" identifier & number_literal) )) != identifier) )) (compound_statement "{\nLAB_0010e768:\n      iVar12 = iVar8;\n      resume_suspended_connections(daemon);\n      goto LAB_0010e770;\n    }" { (labeled_statement "LAB_0010e768:\n      iVar12 = iVar8;" statement_identifier : (expression_statement "iVar12 = iVar8;" (assignment_expression "iVar12 = iVar8" identifier = identifier) ;)) (expression_statement "resume_suspended_connections(daemon);" (call_expression "resume_suspended_connections(daemon)" identifier (argument_list "(daemon)" ( identifier ))) ;) (goto_statement "goto LAB_0010e770;" goto statement_identifier ;) })) (expression_statement "iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10);" (assignment_expression "iVar8 = __poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10)" identifier = (call_expression "__poll_chk(p,iVar12 + 1,-(uint)(may_block != 0),0x10)" identifier (argument_list "(p,iVar12 + 1,-(uint)(may_block != 0),0x10)" ( identifier , (binary_expression "iVar12 + 1" identifier + number_literal) , (unary_expression "-(uint)(may_block != 0)" - (call_expression "(uint)(may_block != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(may_block != 0)" ( (binary_expression "may_block != 0" identifier != number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar8 < 0) {\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0010e7cb:\n      piVar10 = __errno_location();\n      iVar8 = 1;\n      if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" { (labeled_statement "LAB_0010e7cb:\n      piVar10 = __errno_location();" statement_identifier : (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (if_statement "if (*piVar10 != 4) {\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }" if (parenthesized_expression "(*piVar10 != 4)" ( (binary_expression "*piVar10 != 4" (pointer_expression "*piVar10" * identifier) != number_literal) )) (compound_statement "{\n        pcVar11 = strerror(*piVar10);\n        MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);\n        iVar8 = 0;\n      }" { (expression_statement "pcVar11 = strerror(*piVar10);" (assignment_expression "pcVar11 = strerror(*piVar10)" identifier = (call_expression "strerror(*piVar10)" identifier (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,"poll failed: %s\n",pcVar11);" (call_expression "MHD_DLOG(daemon,"poll failed: %s\n",pcVar11)" identifier (argument_list "(daemon,"poll failed: %s\n",pcVar11)" ( identifier , (string_literal ""poll failed: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;) })) (labeled_statement "LAB_0010e2a7:\n    if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }" statement_identifier : (if_statement "if ((p[iVar17].revents & 1) != 0) {\n      read((daemon->itc).fd,&__b,8);\n    }" if (parenthesized_expression "((p[iVar17].revents & 1) != 0)" ( (binary_expression "(p[iVar17].revents & 1) != 0" (parenthesized_expression "(p[iVar17].revents & 1)" ( (binary_expression "p[iVar17].revents & 1" (field_expression "p[iVar17].revents" (subscript_expression "p[iVar17]" identifier [ identifier ]) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      read((daemon->itc).fd,&__b,8);\n    }" { (expression_statement "read((daemon->itc).fd,&__b,8);" (call_expression "read((daemon->itc).fd,&__b,8)" identifier (argument_list "((daemon->itc).fd,&__b,8)" ( (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) , (pointer_expression "&__b" & identifier) , number_literal ))) ;) }))) }))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0))\n  {\n    MHD_accept_connection(daemon);\n    iVar8 = 1;\n  }" if (parenthesized_expression "(((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0))" ( (binary_expression "((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)) && ((p[iVar18].revents & 1) != 0)" (parenthesized_expression "((daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1))" ( (binary_expression "(daemon->shutdown == false) && (iVar8 = 1, iVar18 != -1)" (parenthesized_expression "(daemon->shutdown == false)" ( (binary_expression "daemon->shutdown == false" (field_expression "daemon->shutdown" identifier -> field_identifier) == false) )) && (parenthesized_expression "(iVar8 = 1, iVar18 != -1)" ( (comma_expression "iVar8 = 1, iVar18 != -1" (assignment_expression "iVar8 = 1" identifier = number_literal) , (binary_expression "iVar18 != -1" identifier != number_literal)) ))) )) && (parenthesized_expression "((p[iVar18].revents & 1) != 0)" ( (binary_expression "(p[iVar18].revents & 1) != 0" (parenthesized_expression "(p[iVar18].revents & 1)" ( (binary_expression "p[iVar18].revents & 1" (field_expression "p[iVar18].revents" (subscript_expression "p[iVar18]" identifier [ identifier ]) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    MHD_accept_connection(daemon);\n    iVar8 = 1;\n  }" { (expression_statement "MHD_accept_connection(daemon);" (call_expression "MHD_accept_connection(daemon)" identifier (argument_list "(daemon)" ( identifier ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_0010e779:\n  if (lVar5 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (lVar5 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar8;\n  }" if (parenthesized_expression "(lVar5 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar5 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined8 FUN_0010e1c5(long param_1,ulong param_2)\n\n{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "undefined8 FUN_0010e1c5(long param_1,ulong param_2)\n\n{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" type_identifier (function_declarator "FUN_0010e1c5(long param_1,ulong param_2)" identifier (parameter_list "(long param_1,ulong param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) ))) (compound_statement "{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "pollfd *ppVar1;" type_identifier (pointer_declarator "*ppVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "pollfd *__fds;" type_identifier (pointer_declarator "*__fds" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "ulong local_68;" type_identifier identifier ;) (declaration "undefined1 local_60 [8];" type_identifier (array_declarator "local_60 [8]" identifier [ number_literal ]) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;" if (parenthesized_expression "(*(char *)(param_1 + 0x194) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x194) != '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" * (cast_expression "(char *)(param_1 + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;)) (expression_statement "uVar17 = param_2 & 0xffffffff;" (assignment_expression "uVar17 = param_2 & 0xffffffff" identifier = (binary_expression "param_2 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x1b4);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x1b4)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1b4)" * (cast_expression "(uint *)(param_1 + 0x1b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b4)" ( (binary_expression "param_1 + 0x1b4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" if (parenthesized_expression "((uVar16 & 4) == 0)" ( (binary_expression "(uVar16 & 4) == 0" (parenthesized_expression "(uVar16 & 4)" ( (binary_expression "uVar16 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" { (if_statement "if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }" if (parenthesized_expression "(((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1))" ( (binary_expression "((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)" (parenthesized_expression "((uVar16 & 0x2000) != 0)" ( (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" ( (binary_expression "uVar16 & 0x2000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00109311(), iVar7 == 1)" ( (comma_expression "iVar7 = FUN_00109311(), iVar7 == 1" (assignment_expression "iVar7 = FUN_00109311()" identifier = (call_expression "FUN_00109311()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 == 1" identifier == number_literal)) ))) )) (compound_statement "{\n      uVar17 = 0;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })) (expression_statement "lVar11 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = uVar16;" (assignment_expression "uVar14 = uVar16" identifier = identifier) ;) (if_statement "if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);" do (compound_statement "{\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "lVar11 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x10)" identifier = (pointer_expression "*(long *)(lVar11 + 0x10)" * (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;) })) (for_statement "for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }" for ( (assignment_expression "lVar11 = *(long *)(param_1 + 0x1c0)" identifier = (pointer_expression "*(long *)(param_1 + 0x1c0)" * (cast_expression "(long *)(param_1 + 0x1c0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c0)" ( (binary_expression "param_1 + 0x1c0" identifier + number_literal) ))))) ; (binary_expression "lVar11 != 0" identifier != number_literal) ; (assignment_expression "lVar11 = *(long *)(lVar11 + 8)" identifier = (pointer_expression "*(long *)(lVar11 + 8)" * (cast_expression "(long *)(lVar11 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 8)" ( (binary_expression "lVar11 + 8" identifier + number_literal) ))))) ) (compound_statement "{\n      uVar14 = uVar14 + 2;\n    }" { (expression_statement "uVar14 = uVar14 + 2;" (assignment_expression "uVar14 = uVar14 + 2" identifier = (binary_expression "uVar14 + 2" identifier + number_literal)) ;) })) (expression_statement "__fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);" (assignment_expression "__fds = (pollfd *)calloc((ulong)(uVar14 + 2),8)" identifier = (cast_expression "(pollfd *)calloc((ulong)(uVar14 + 2),8)" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc((ulong)(uVar14 + 2),8)" identifier (argument_list "((ulong)(uVar14 + 2),8)" ( (call_expression "(ulong)(uVar14 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar14 + 2)" ( (binary_expression "uVar14 + 2" identifier + number_literal) ))) , number_literal ))))) ;) (if_statement "if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(__fds == (pollfd *)0x0)" ( (binary_expression "__fds == (pollfd *)0x0" identifier == (cast_expression "(pollfd *)0x0" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10)" identifier (argument_list "(param_1,"Error allocating memory: %s\n",pcVar10)" ( identifier , (string_literal ""Error allocating memory: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" { (expression_statement "local_6c = *(int *)(param_1 + 0x178);" (assignment_expression "local_6c = *(int *)(param_1 + 0x178)" identifier = (pointer_expression "*(int *)(param_1 + 0x178)" * (cast_expression "(int *)(param_1 + 0x178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x178)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "local_78 = uVar16;" (assignment_expression "local_78 = uVar16" identifier = identifier) ;) (if_statement "if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" if (parenthesized_expression "(local_6c != -1)" ( (binary_expression "local_6c != -1" identifier != number_literal) )) (compound_statement "{\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" { (if_statement "if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }" if (parenthesized_expression "(*(char *)(param_1 + 0x195) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x195) == '\0'" (pointer_expression "*(char *)(param_1 + 0x195)" * (cast_expression "(char *)(param_1 + 0x195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x195)" ( (binary_expression "param_1 + 0x195" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }" { (if_statement "if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }" if (parenthesized_expression "(*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0))" ( (binary_expression "*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)" (pointer_expression "*(uint *)(param_1 + 0x19c)" * (cast_expression "(uint *)(param_1 + 0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19c)" ( (binary_expression "param_1 + 0x19c" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_1 + 0x1a0)" * (cast_expression "(uint *)(param_1 + 0x1a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a0)" ( (binary_expression "param_1 + 0x1a0" identifier + number_literal) ))))) )) (compound_statement "{\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }" { (if_statement "if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }" if (parenthesized_expression "(*(char *)(param_1 + 0x196) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x196) == '\0'" (pointer_expression "*(char *)(param_1 + 0x196)" * (cast_expression "(char *)(param_1 + 0x196)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x196)" ( (binary_expression "param_1 + 0x196" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }" { (expression_statement "__fds->fd = local_6c;" (assignment_expression "__fds->fd = local_6c" (field_expression "__fds->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "__fds->events = 1;" (assignment_expression "__fds->events = 1" (field_expression "__fds->events" identifier -> field_identifier) = number_literal) ;) (expression_statement "__fds->revents = 0;" (assignment_expression "__fds->revents = 0" (field_expression "__fds->revents" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              local_6c = -1;\n            }" else (compound_statement "{\n              local_6c = -1;\n            }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n            local_6c = -1;\n          }" else (compound_statement "{\n            local_6c = -1;\n          }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          local_6c = -1;\n        }" else (compound_statement "{\n          local_6c = -1;\n        }" { (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" identifier = number_literal) ;) }))) })) (expression_statement "local_70 = *(uint *)(param_1 + 400);" (assignment_expression "local_70 = *(uint *)(param_1 + 400)" identifier = (pointer_expression "*(uint *)(param_1 + 400)" * (cast_expression "(uint *)(param_1 + 400)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) ))))) ;) (if_statement "if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" if (parenthesized_expression "(local_70 != 0xffffffff)" ( (binary_expression "local_70 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" { (expression_statement "ppVar1 = __fds + local_78;" (assignment_expression "ppVar1 = __fds + local_78" identifier = (binary_expression "__fds + local_78" identifier + identifier)) ;) (expression_statement "ppVar1->fd = local_70;" (assignment_expression "ppVar1->fd = local_70" (field_expression "ppVar1->fd" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar1->events = 1;" (assignment_expression "ppVar1->events = 1" (field_expression "ppVar1->events" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar1->revents = 0;" (assignment_expression "ppVar1->revents = 0" (field_expression "ppVar1->revents" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_70 = local_78;" (assignment_expression "local_70 = local_78" identifier = identifier) ;) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) })) (if_statement "if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }" if (parenthesized_expression "(((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68))" ( (binary_expression "((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)" (parenthesized_expression "((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1))" ( (binary_expression "(((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)" (parenthesized_expression "(((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0))" ( (binary_expression "((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)" (parenthesized_expression "((int)uVar17 != 0)" ( (binary_expression "(int)uVar17 != 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) && (parenthesized_expression "(uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)" ( (comma_expression "uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0" (assignment_expression "uVar17 = 0xffffffff" identifier = number_literal) , (binary_expression "(*(byte *)(param_1 + 0x1b4) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x1b4) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x1b4) & 4" (pointer_expression "*(byte *)(param_1 + 0x1b4)" * (cast_expression "(byte *)(param_1 + 0x1b4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b4)" ( (binary_expression "param_1 + 0x1b4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)" ( (comma_expression "iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1" (assignment_expression "iVar7 = MHD_get_timeout(param_1,&local_68)" identifier = (call_expression "MHD_get_timeout(param_1,&local_68)" identifier (argument_list "(param_1,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) )))) , (binary_expression "iVar7 == 1" identifier == number_literal)) ))) )) && (parenthesized_expression "(uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)" ( (comma_expression "uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68" (assignment_expression "uVar17 = local_68 & 0xffffffff" identifier = (binary_expression "local_68 & 0xffffffff" identifier & number_literal)) , (binary_expression "0x7fffffff < local_68" number_literal < identifier)) ))) )) (compound_statement "{\n        uVar17 = 0x7fffffff;\n      }" { (expression_statement "uVar17 = 0x7fffffff;" (assignment_expression "uVar17 = 0x7fffffff" identifier = number_literal) ;) })) (expression_statement "iVar7 = (int)uVar17;" (assignment_expression "iVar7 = (int)uVar17" identifier = (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" else (compound_statement "{\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);" do (compound_statement "{\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        }" { (expression_statement "ppVar1 = __fds + (local_78 + iVar6);" (assignment_expression "ppVar1 = __fds + (local_78 + iVar6)" identifier = (binary_expression "__fds + (local_78 + iVar6)" identifier + (parenthesized_expression "(local_78 + iVar6)" ( (binary_expression "local_78 + iVar6" identifier + identifier) )))) ;) (expression_statement "ppVar1->fd = *(int *)(lVar11 + 0x130);" (assignment_expression "ppVar1->fd = *(int *)(lVar11 + 0x130)" (field_expression "ppVar1->fd" identifier -> field_identifier) = (pointer_expression "*(int *)(lVar11 + 0x130)" * (cast_expression "(int *)(lVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x130)" ( (binary_expression "lVar11 + 0x130" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(lVar11 + 0x144);" (assignment_expression "iVar7 = *(int *)(lVar11 + 0x144)" identifier = (pointer_expression "*(int *)(lVar11 + 0x144)" * (cast_expression "(int *)(lVar11 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x144)" ( (binary_expression "lVar11 + 0x144" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 6;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 6;" (assignment_expression "ppVar1->events = ppVar1->events | 6" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 6" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" else (if_statement "if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 3;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 3;" (assignment_expression "ppVar1->events = ppVar1->events | 3" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 3" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" else (if_statement "if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 2)" ( (binary_expression "iVar7 == 2" identifier == number_literal) )) (compound_statement "{\n            ppVar1->events = ppVar1->events | 2;\n          }" { (expression_statement "ppVar1->events = ppVar1->events | 2;" (assignment_expression "ppVar1->events = ppVar1->events | 2" (field_expression "ppVar1->events" identifier -> field_identifier) = (binary_expression "ppVar1->events | 2" (field_expression "ppVar1->events" identifier -> field_identifier) | number_literal)) ;) }) (else_clause "else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" else (if_statement "if (iVar7 == 3) {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )) (compound_statement "{\n            uVar17 = 0;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })))))))) (expression_statement "iVar7 = (int)uVar17;" (assignment_expression "iVar7 = (int)uVar17" identifier = (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;) }))) (expression_statement "plVar13 = *(long **)(param_1 + 0x1c8);" (assignment_expression "plVar13 = *(long **)(param_1 + 0x1c8)" identifier = (pointer_expression "*(long **)(param_1 + 0x1c8)" * (cast_expression "(long **)(param_1 + 0x1c8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }" if (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }" { (expression_statement "local_74 = iVar6 + local_78;" (assignment_expression "local_74 = iVar6 + local_78" identifier = (binary_expression "iVar6 + local_78" identifier + identifier)) ;) (do_statement "do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);" do (compound_statement "{\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        }" { (expression_statement "__fds[local_74].fd = *(int *)(*plVar13 + 0x130);" (assignment_expression "__fds[local_74].fd = *(int *)(*plVar13 + 0x130)" (field_expression "__fds[local_74].fd" (subscript_expression "__fds[local_74]" identifier [ identifier ]) . field_identifier) = (pointer_expression "*(int *)(*plVar13 + 0x130)" * (cast_expression "(int *)(*plVar13 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar13 + 0x130)" ( (binary_expression "*plVar13 + 0x130" (pointer_expression "*plVar13" * identifier) + number_literal) ))))) ;) (expression_statement "(__fds + local_74)[1].fd = (int)plVar13[0xf];" (assignment_expression "(__fds + local_74)[1].fd = (int)plVar13[0xf]" (field_expression "(__fds + local_74)[1].fd" (subscript_expression "(__fds + local_74)[1]" (parenthesized_expression "(__fds + local_74)" ( (binary_expression "__fds + local_74" identifier + identifier) )) [ number_literal ]) . field_identifier) = (cast_expression "(int)plVar13[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar13[0xf]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00108e38(plVar13);" (call_expression "FUN_00108e38(plVar13)" identifier (argument_list "(plVar13)" ( identifier ))) ;) (expression_statement "plVar13 = (long *)plVar13[2];" (assignment_expression "plVar13 = (long *)plVar13[2]" identifier = (cast_expression "(long *)plVar13[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "local_74 = local_74 + 2;" (assignment_expression "local_74 = local_74 + 2" identifier = (binary_expression "local_74 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" if (parenthesized_expression "(local_78 + uVar14 == 0)" ( (binary_expression "local_78 + uVar14 == 0" (binary_expression "local_78 + uVar14" identifier + identifier) == number_literal) )) (compound_statement "{\n        free(__fds);\n        uVar8 = 1;\n      }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" else (compound_statement "{\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" { (expression_statement "iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);" (assignment_expression "iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7)" identifier = (call_expression "poll(__fds,(ulong)(local_78 + uVar14),iVar7)" identifier (argument_list "(__fds,(ulong)(local_78 + uVar14),iVar7)" ( identifier , (call_expression "(ulong)(local_78 + uVar14)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_78 + uVar14)" ( (binary_expression "local_78 + uVar14" identifier + identifier) ))) , identifier )))) ;) (if_statement "if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" if (parenthesized_expression "(*piVar9 == 4)" ( (binary_expression "*piVar9 == 4" (pointer_expression "*piVar9" * identifier) == number_literal) )) (compound_statement "{\n            free(__fds);\n            uVar8 = 1;\n          }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" else (compound_statement "{\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" { (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10)" identifier (argument_list "(param_1,"poll failed: %s\n",pcVar10)" ( identifier , (string_literal ""poll failed: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" else (compound_statement "{\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" { (expression_statement "*(undefined1 *)(param_1 + 0x198) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x198) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x198)" * (cast_expression "(undefined1 *)(param_1 + 0x198)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x198)" ( (binary_expression "param_1 + 0x198" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }" if (parenthesized_expression "((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0))" ( (binary_expression "(local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)" (parenthesized_expression "(local_70 != 0xffffffff)" ( (binary_expression "local_70 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "((__fds[(int)local_70].revents & 1) != 0)" ( (binary_expression "(__fds[(int)local_70].revents & 1) != 0" (parenthesized_expression "(__fds[(int)local_70].revents & 1)" ( (binary_expression "__fds[(int)local_70].revents & 1" (field_expression "__fds[(int)local_70].revents" (subscript_expression "__fds[(int)local_70]" identifier [ (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            read(*(int *)(param_1 + 400),local_60,8);\n          }" { (expression_statement "read(*(int *)(param_1 + 400),local_60,8);" (call_expression "read(*(int *)(param_1 + 400),local_60,8)" identifier (argument_list "(*(int *)(param_1 + 400),local_60,8)" ( (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) , identifier , number_literal ))) ;) })) (if_statement "if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }" if (parenthesized_expression "(*(char *)(param_1 + 0x194) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x194) == '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" * (cast_expression "(char *)(param_1 + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }" { (expression_statement "lVar11 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }" { (expression_statement "lVar4 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar4 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar16 = 0;\n              }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" else (compound_statement "{\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" { (do_statement "do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));" do (compound_statement "{\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                }" { (expression_statement "lVar12 = lVar4;" (assignment_expression "lVar12 = lVar4" identifier = identifier) ;) (if_statement "if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }" if (parenthesized_expression "(__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130))" ( (binary_expression "__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)" (field_expression "__fds[local_78 + uVar16].fd" (subscript_expression "__fds[local_78 + uVar16]" identifier [ (binary_expression "local_78 + uVar16" identifier + identifier) ]) . field_identifier) == (pointer_expression "*(int *)(lVar11 + 0x130)" * (cast_expression "(int *)(lVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x130)" ( (binary_expression "lVar11 + 0x130" identifier + number_literal) ))))) )) (compound_statement "{\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }" { (expression_statement "uVar2 = __fds[local_78 + uVar16].revents;" (assignment_expression "uVar2 = __fds[local_78 + uVar16].revents" identifier = (field_expression "__fds[local_78 + uVar16].revents" (subscript_expression "__fds[local_78 + uVar16]" identifier [ (binary_expression "local_78 + uVar16" identifier + identifier) ]) . field_identifier)) ;) (expression_statement "FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);" (call_expression "FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0)" identifier (argument_list "(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0)" ( identifier , (binary_expression "uVar2 & 1" identifier & number_literal) , (binary_expression "uVar2 >> 2 & 1" (binary_expression "uVar2 >> 2" identifier >> number_literal) & number_literal) , (binary_expression "(uVar2 & 0xba) != 0" (parenthesized_expression "(uVar2 & 0xba)" ( (binary_expression "uVar2 & 0xba" identifier & number_literal) )) != number_literal) ))) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14))" ( (binary_expression "(lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14)" (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14)" ( (comma_expression "lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14" (assignment_expression "lVar4 = *(long *)(lVar12 + 0x18)" identifier = (pointer_expression "*(long *)(lVar12 + 0x18)" * (cast_expression "(long *)(lVar12 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x18)" ( (binary_expression "lVar12 + 0x18" identifier + number_literal) ))))) , (comma_expression "lVar11 = lVar12, uVar16 < uVar14" (assignment_expression "lVar11 = lVar12" identifier = identifier) , (binary_expression "uVar16 < uVar14" identifier < identifier))) ))) )) ;) }))) })) (expression_statement "uVar16 = local_78 + 1 + uVar16;" (assignment_expression "uVar16 = local_78 + 1 + uVar16" identifier = (binary_expression "local_78 + 1 + uVar16" (binary_expression "local_78 + 1" identifier + number_literal) + identifier)) ;) (expression_statement "plVar13 = *(long **)(param_1 + 0x1c8);" (assignment_expression "plVar13 = *(long **)(param_1 + 0x1c8)" identifier = (pointer_expression "*(long **)(param_1 + 0x1c8)" * (cast_expression "(long **)(param_1 + 0x1c8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) ;) (while_statement "while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }" while (parenthesized_expression "((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf])))" ( (parenthesized_expression "(((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))" ( (binary_expression "((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf])" (parenthesized_expression "((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    ))" ( (binary_expression "(~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )" (parenthesized_expression "(~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0))" ( (binary_expression "~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)" (binary_expression "~local_78 + uVar16 < uVar14" (binary_expression "~local_78 + uVar16" (unary_expression "~local_78" ~ identifier) + identifier) < identifier) && (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )" ( (comma_expression "plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)" (assignment_expression "plVar3 = (long *)plVar13[2]" identifier = (cast_expression "(long *)plVar13[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar13[2]" identifier [ number_literal ]))) , (binary_expression "__fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)" (field_expression "__fds[uVar16 - 1].fd" (subscript_expression "__fds[uVar16 - 1]" identifier [ (binary_expression "uVar16 - 1" identifier - number_literal) ]) . field_identifier) == (pointer_expression "*(int *)(*plVar13 + 0x130)" * (cast_expression "(int *)(*plVar13 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar13 + 0x130)" ( (binary_expression "*plVar13 + 0x130" (pointer_expression "*plVar13" * identifier) + number_literal) )))))) ))) )) && (parenthesized_expression "(__fds[uVar16].fd == (int)plVar13[0xf])" ( (binary_expression "__fds[uVar16].fd == (int)plVar13[0xf]" (field_expression "__fds[uVar16].fd" (subscript_expression "__fds[uVar16]" identifier [ identifier ]) . field_identifier) == (cast_expression "(int)plVar13[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar13[0xf]" identifier [ number_literal ]))) ))) )) )) (compound_statement "{\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }" { (expression_statement "FUN_00108ebd(plVar13);" (call_expression "FUN_00108ebd(plVar13)" identifier (argument_list "(plVar13)" ( identifier ))) ;) (expression_statement "FUN_001098d1(plVar13);" (call_expression "FUN_001098d1(plVar13)" identifier (argument_list "(plVar13)" ( identifier ))) ;) (if_statement "if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }" if (parenthesized_expression "(((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0))))" ( (binary_expression "((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))" (parenthesized_expression "((plVar13[8] == 0) && (plVar13[9] == 0))" ( (binary_expression "(plVar13[8] == 0) && (plVar13[9] == 0)" (parenthesized_expression "(plVar13[8] == 0)" ( (binary_expression "plVar13[8] == 0" (subscript_expression "plVar13[8]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(plVar13[9] == 0)" ( (binary_expression "plVar13[9] == 0" (subscript_expression "plVar13[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((plVar13[10] == 0 && (plVar13[0xb] == 0)))" ( (parenthesized_expression "(plVar13[10] == 0 && (plVar13[0xb] == 0))" ( (binary_expression "plVar13[10] == 0 && (plVar13[0xb] == 0)" (binary_expression "plVar13[10] == 0" (subscript_expression "plVar13[10]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(plVar13[0xb] == 0)" ( (binary_expression "plVar13[0xb] == 0" (subscript_expression "plVar13[0xb]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }" { (expression_statement "FUN_0010618a(*plVar13);" (call_expression "FUN_0010618a(*plVar13)" identifier (argument_list "(*plVar13)" ( (pointer_expression "*plVar13" * identifier) ))) ;) (expression_statement "*(undefined1 *)((long)plVar13 + 0x89) = 1;" (assignment_expression "*(undefined1 *)((long)plVar13 + 0x89) = 1" (pointer_expression "*(undefined1 *)((long)plVar13 + 0x89)" * (cast_expression "(undefined1 *)((long)plVar13 + 0x89)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 + 0x89)" ( (binary_expression "(long)plVar13 + 0x89" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "MHD_resume_connection(*plVar13);" (call_expression "MHD_resume_connection(*plVar13)" identifier (argument_list "(*plVar13)" ( (pointer_expression "*plVar13" * identifier) ))) ;) })) (expression_statement "uVar16 = uVar16 + 2;" (assignment_expression "uVar16 = uVar16 + 2" identifier = (binary_expression "uVar16 + 2" identifier + number_literal)) ;) (expression_statement "plVar13 = plVar3;" (assignment_expression "plVar13 = plVar3" identifier = identifier) ;) })) (if_statement "if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }" if (parenthesized_expression "((local_6c != -1) && ((__fds->revents & 1) != 0))" ( (binary_expression "(local_6c != -1) && ((__fds->revents & 1) != 0)" (parenthesized_expression "(local_6c != -1)" ( (binary_expression "local_6c != -1" identifier != number_literal) )) && (parenthesized_expression "((__fds->revents & 1) != 0)" ( (binary_expression "(__fds->revents & 1) != 0" (parenthesized_expression "(__fds->revents & 1)" ( (binary_expression "__fds->revents & 1" (field_expression "__fds->revents" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              FUN_0010bb71(param_1);\n            }" { (expression_statement "FUN_0010bb71(param_1);" (call_expression "FUN_0010bb71(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            free(__fds);\n            uVar8 = 0;\n          }" else (compound_statement "{\n            free(__fds);\n            uVar8 = 0;\n          }" { (expression_statement "free(__fds);" (call_expression "free(__fds)" identifier (argument_list "(__fds)" ( identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) }))) }))) }))) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;) })) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x178);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x178)" identifier = (pointer_expression "*(int *)(param_1 + 0x178)" * (cast_expression "(int *)(param_1 + 0x178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x178)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x195) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x195) == '\0'" (pointer_expression "*(char *)(param_1 + 0x195)" * (cast_expression "(char *)(param_1 + 0x195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x195)" ( (binary_expression "param_1 + 0x195" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }" { (expression_statement "local_58 = (ulong)CONCAT24(1,iVar7);" (assignment_expression "local_58 = (ulong)CONCAT24(1,iVar7)" identifier = (cast_expression "(ulong)CONCAT24(1,iVar7)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CONCAT24(1,iVar7)" identifier (argument_list "(1,iVar7)" ( number_literal , identifier ))))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }" else (compound_statement "{\n      iVar7 = -1;\n      lVar11 = 0;\n    }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "iVar6 = (int)lVar11;" (assignment_expression "iVar6 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 400) == -1)" ( (binary_expression "*(int *)(param_1 + 400) == -1" (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }" { (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) (if_statement "if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;" if (parenthesized_expression "((uVar16 & 0x2000) != 0)" ( (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" ( (binary_expression "uVar16 & 0x2000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0010e768;" goto statement_identifier ;)) (labeled_statement "LAB_0010e770:\n    uVar8 = 1;" statement_identifier : (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;)) (if_statement "if (iVar6 == 0) goto LAB_0010e779;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;)) (expression_statement "iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);" (assignment_expression "iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" identifier = (call_expression "__poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" identifier (argument_list "(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" ( (pointer_expression "&local_58" & identifier) , identifier , (unary_expression "-(uint)((int)param_2 != 0)" - (call_expression "(uint)((int)param_2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_2 != 0)" ( (binary_expression "(int)param_2 != 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar6 < 0) goto LAB_0010e7cb;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0010e7cb;" goto statement_identifier ;)) (if_statement "if (iVar15 != -1) goto LAB_0010e2a7;" if (parenthesized_expression "(iVar15 != -1)" ( (binary_expression "iVar15 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0010e2a7;" goto statement_identifier ;)) }) (else_clause "else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" else (compound_statement "{\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" { (expression_statement "*(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);" (assignment_expression "*(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400)" (pointer_expression "*(int *)(&local_58 + lVar11)" * (cast_expression "(int *)(&local_58 + lVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&local_58 + lVar11)" ( (binary_expression "&local_58 + lVar11" (pointer_expression "&local_58" & identifier) + identifier) )))) = (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) ))))) ;) (expression_statement "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;" (assignment_expression "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1" (pointer_expression "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4)" * (cast_expression "(undefined2 *)((long)&local_58 + lVar11 * 8 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_58 + lVar11 * 8 + 4)" ( (binary_expression "(long)&local_58 + lVar11 * 8 + 4" (binary_expression "(long)&local_58 + lVar11 * 8" (cast_expression "(long)&local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_58" & identifier)) + (binary_expression "lVar11 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "iVar15 = iVar6;" (assignment_expression "iVar15 = iVar6" identifier = identifier) ;) (expression_statement "iVar5 = iVar6 + 1;" (assignment_expression "iVar5 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }" if (parenthesized_expression "((uVar16 & 0x2000) != 0)" ( (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" ( (binary_expression "uVar16 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }" { (labeled_statement "LAB_0010e768:\n      iVar6 = iVar5;" statement_identifier : (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" identifier = identifier) ;)) (expression_statement "FUN_00109311(param_1);" (call_expression "FUN_00109311(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (goto_statement "goto LAB_0010e770;" goto statement_identifier ;) })) (expression_statement "iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);" (assignment_expression "iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" identifier = (call_expression "__poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" identifier (argument_list "(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" ( (pointer_expression "&local_58" & identifier) , (binary_expression "iVar6 + 1" identifier + number_literal) , (unary_expression "-(uint)((int)param_2 != 0)" - (call_expression "(uint)((int)param_2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_2 != 0)" ( (binary_expression "(int)param_2 != 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" { (labeled_statement "LAB_0010e7cb:\n      piVar9 = __errno_location();" statement_identifier : (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }" if (parenthesized_expression "(*piVar9 != 4)" ( (binary_expression "*piVar9 != 4" (pointer_expression "*piVar9" * identifier) != number_literal) )) (compound_statement "{\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }" { (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10)" identifier (argument_list "(param_1,"poll failed: %s\n",pcVar10)" ( identifier , (string_literal ""poll failed: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0010e779;" goto statement_identifier ;) })) (labeled_statement "LAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" statement_identifier : (if_statement "if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" if (parenthesized_expression "((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0)" ( (binary_expression "(*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1)" ( (binary_expression "*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1" (pointer_expression "*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6)" * (cast_expression "(byte *)((long)&local_58 + (long)iVar15 * 8 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_58 + (long)iVar15 * 8 + 6)" ( (binary_expression "(long)&local_58 + (long)iVar15 * 8 + 6" (binary_expression "(long)&local_58 + (long)iVar15 * 8" (cast_expression "(long)&local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_58" & identifier)) + (binary_expression "(long)iVar15 * 8" (cast_expression "(long)iVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" { (expression_statement "read(*(int *)(param_1 + 400),local_60,8);" (call_expression "read(*(int *)(param_1 + 400),local_60,8)" identifier (argument_list "(*(int *)(param_1 + 400),local_60,8)" ( (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) , identifier , number_literal ))) ;) }))) }))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }" if (parenthesized_expression "(((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0))" ( (binary_expression "((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)" (parenthesized_expression "((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1))" ( (binary_expression "(*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)" (parenthesized_expression "(*(char *)(param_1 + 0x194) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x194) == '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" * (cast_expression "(char *)(param_1 + 0x194)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar8 = 1, iVar7 != -1)" ( (comma_expression "uVar8 = 1, iVar7 != -1" (assignment_expression "uVar8 = 1" identifier = number_literal) , (binary_expression "iVar7 != -1" identifier != number_literal)) ))) )) && (parenthesized_expression "((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)" ( (binary_expression "(*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1)" ( (binary_expression "*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1" (pointer_expression "*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6)" * (cast_expression "(byte *)((long)&local_58 + (long)iVar7 * 8 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_58 + (long)iVar7 * 8 + 6)" ( (binary_expression "(long)&local_58 + (long)iVar7 * 8 + 6" (binary_expression "(long)&local_58 + (long)iVar7 * 8" (cast_expression "(long)&local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_58" & identifier)) + (binary_expression "(long)iVar7 * 8" (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }" { (expression_statement "FUN_0010bb71(param_1);" (call_expression "FUN_0010bb71(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar8;\n  }" { (return_statement "return uVar8;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (binary_expression (field_expression IDENT -> field_identifier) | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (binary_expression (field_expression IDENT -> field_identifier) | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (binary_expression (field_expression IDENT -> field_identifier) | LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression (subscript_expression IDENT [ IDENT ]) . field_identifier) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) [ LIT ]) . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) . field_identifier) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression (subscript_expression IDENT [ (binary_expression IDENT + IDENT) ]) . field_identifier) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression (subscript_expression IDENT [ (binary_expression IDENT + IDENT) ]) . field_identifier)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) , (binary_expression (binary_expression IDENT >> LIT) & LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < IDENT))) ))) )) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (unary_expression ~ IDENT) + IDENT) < IDENT) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (field_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) . field_identifier) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))))) ))) )) && (parenthesized_expression ( (binary_expression (field_expression (subscript_expression IDENT [ IDENT ]) . field_identifier) == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) }))) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined8 FUN_0010e1c5(long param_1,ulong param_2)\n\n{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" (type_identifier "undefined8") (function_declarator "FUN_0010e1c5(long param_1,ulong param_2)" (identifier "FUN_0010e1c5") (parameter_list "(long param_1,ulong param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) () ")"))) (compound_statement "{\n  pollfd *ppVar1;\n  ushort uVar2;\n  long *plVar3;\n  long lVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 uVar8;\n  pollfd *__fds;\n  int *piVar9;\n  char *pcVar10;\n  long lVar11;\n  long lVar12;\n  long *plVar13;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  ulong uVar17;\n  long in_FS_OFFSET;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  int local_6c;\n  ulong local_68;\n  undefined1 local_60 [8];\n  undefined8 local_58;\n  undefined8 local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar8 = 0;\n  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;\n  uVar17 = param_2 & 0xffffffff;\n  uVar16 = *(uint *)(param_1 + 0x1b4);\n  if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }\n  local_58 = 0;\n  local_50 = 0;\n  iVar7 = *(int *)(param_1 + 0x178);\n  lVar11 = 0;\n  if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }\n  iVar6 = (int)lVar11;\n  if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }\n  uVar8 = 0;\n  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }\nLAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "pollfd *ppVar1;" (type_identifier "pollfd") (pointer_declarator "*ppVar1" (* "*") (identifier "ppVar1")) (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "pollfd *__fds;" (type_identifier "pollfd") (pointer_declarator "*__fds" (* "*") (identifier "__fds")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "long *plVar13;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar13" (* "*") (identifier "plVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "ulong uVar17;" (type_identifier "ulong") (identifier "uVar17") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "uint local_70;" (type_identifier "uint") (identifier "local_70") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "ulong local_68;" (type_identifier "ulong") (identifier "local_68") (; ";")) (declaration "undefined1 local_60 [8];" (type_identifier "undefined1") (array_declarator "local_60 [8]" (identifier "local_60") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x194) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x194) != '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" (* "*") (cast_expression "(char *)(param_1 + 0x194)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0010e779;" (goto "goto") (statement_identifier "LAB_0010e779") (; ";"))) (expression_statement "uVar17 = param_2 & 0xffffffff;" (assignment_expression "uVar17 = param_2 & 0xffffffff" (identifier "uVar17") (= "=") (binary_expression "param_2 & 0xffffffff" (identifier "param_2") (& "&") (number_literal "0xffffffff"))) (; ";")) (expression_statement "uVar16 = *(uint *)(param_1 + 0x1b4);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x1b4)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1b4)" (* "*") (cast_expression "(uint *)(param_1 + 0x1b4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1b4)" (( "(") (binary_expression "param_1 + 0x1b4" (identifier "param_1") (+ "+") (number_literal "0x1b4")) () ")"))))) (; ";")) (if_statement "if ((uVar16 & 4) == 0) {\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" (if "if") (parenthesized_expression "((uVar16 & 4) == 0)" (( "(") (binary_expression "(uVar16 & 4) == 0" (parenthesized_expression "(uVar16 & 4)" (( "(") (binary_expression "uVar16 & 4" (identifier "uVar16") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }\n    lVar11 = *(long *)(param_1 + 0x10);\n    uVar16 = 0;\n    uVar14 = uVar16;\n    if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }\n    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }\n    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);\n    if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }\n    goto LAB_0010e779;\n  }" ({ "{") (if_statement "if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {\n      uVar17 = 0;\n    }" (if "if") (parenthesized_expression "(((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1))" (( "(") (binary_expression "((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)" (parenthesized_expression "((uVar16 & 0x2000) != 0)" (( "(") (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" (( "(") (binary_expression "uVar16 & 0x2000" (identifier "uVar16") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00109311(), iVar7 == 1)" (( "(") (comma_expression "iVar7 = FUN_00109311(), iVar7 == 1" (assignment_expression "iVar7 = FUN_00109311()" (identifier "iVar7") (= "=") (call_expression "FUN_00109311()" (identifier "FUN_00109311") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n      uVar17 = 0;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar11 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x10)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = uVar16;" (assignment_expression "uVar14 = uVar16" (identifier "uVar14") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (lVar11 != 0) {\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }" (if "if") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = 0;\n      do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);\n    }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      } while (lVar11 != 0);" (do "do") (compound_statement "{\n        uVar14 = uVar14 + 1;\n        lVar11 = *(long *)(lVar11 + 0x10);\n      }" ({ "{") (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar11 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x10)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar11 + 0x10)" (* "*") (cast_expression "(long *)(lVar11 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x10)" (( "(") (binary_expression "lVar11 + 0x10" (identifier "lVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (for_statement "for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {\n      uVar14 = uVar14 + 2;\n    }" (for "for") (( "(") (assignment_expression "lVar11 = *(long *)(param_1 + 0x1c0)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x1c0)" (* "*") (cast_expression "(long *)(param_1 + 0x1c0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c0)" (( "(") (binary_expression "param_1 + 0x1c0" (identifier "param_1") (+ "+") (number_literal "0x1c0")) () ")"))))) (; ";") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar11 = *(long *)(lVar11 + 8)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar11 + 8)" (* "*") (cast_expression "(long *)(lVar11 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 8)" (( "(") (binary_expression "lVar11 + 8" (identifier "lVar11") (+ "+") (number_literal "8")) () ")"))))) () ")") (compound_statement "{\n      uVar14 = uVar14 + 2;\n    }" ({ "{") (expression_statement "uVar14 = uVar14 + 2;" (assignment_expression "uVar14 = uVar14 + 2" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 2" (identifier "uVar14") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "__fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);" (assignment_expression "__fds = (pollfd *)calloc((ulong)(uVar14 + 2),8)" (identifier "__fds") (= "=") (cast_expression "(pollfd *)calloc((ulong)(uVar14 + 2),8)" (( "(") (type_descriptor "pollfd *" (type_identifier "pollfd") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "calloc((ulong)(uVar14 + 2),8)" (identifier "calloc") (argument_list "((ulong)(uVar14 + 2),8)" (( "(") (call_expression "(ulong)(uVar14 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar14 + 2)" (( "(") (binary_expression "uVar14 + 2" (identifier "uVar14") (+ "+") (number_literal "2")) () ")"))) (, ",") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (__fds == (pollfd *)0x0) {\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }\n    else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(__fds == (pollfd *)0x0)" (( "(") (binary_expression "__fds == (pollfd *)0x0" (identifier "__fds") (== "==") (cast_expression "(pollfd *)0x0" (( "(") (type_descriptor "pollfd *" (type_identifier "pollfd") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar9 = __errno_location();\n      pcVar10 = strerror(*piVar9);\n      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);\n      uVar8 = 0;\n    }" ({ "{") (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" (identifier "piVar9") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" (identifier "pcVar10") (= "=") (call_expression "strerror(*piVar9)" (identifier "strerror") (argument_list "(*piVar9)" (( "(") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) () ")")))) (; ";")) (expression_statement "FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10)" (identifier "FUN_00110c11") (argument_list "(param_1,"Error allocating memory: %s\n",pcVar10)" (( "(") (identifier "param_1") (, ",") (string_literal ""Error allocating memory: %s\n"" (" """) (string_content "Error allocating memory: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" (else "else") (compound_statement "{\n      local_6c = *(int *)(param_1 + 0x178);\n      local_78 = uVar16;\n      if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }\n      local_70 = *(uint *)(param_1 + 400);\n      if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }\n      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }\n      iVar7 = (int)uVar17;\n      lVar11 = *(long *)(param_1 + 0x18);\n      if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }\n      plVar13 = *(long **)(param_1 + 0x1c8);\n      if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }\n      if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "local_6c = *(int *)(param_1 + 0x178);" (assignment_expression "local_6c = *(int *)(param_1 + 0x178)" (identifier "local_6c") (= "=") (pointer_expression "*(int *)(param_1 + 0x178)" (* "*") (cast_expression "(int *)(param_1 + 0x178)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x178)" (( "(") (binary_expression "param_1 + 0x178" (identifier "param_1") (+ "+") (number_literal "0x178")) () ")"))))) (; ";")) (expression_statement "local_78 = uVar16;" (assignment_expression "local_78 = uVar16" (identifier "local_78") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (local_6c != -1) {\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" (if "if") (parenthesized_expression "(local_6c != -1)" (( "(") (binary_expression "local_6c != -1" (identifier "local_6c") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }\n      }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x195) == '\0') {\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }\n        else {\n          local_6c = -1;\n        }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x195) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x195) == '\0'" (pointer_expression "*(char *)(param_1 + 0x195)" (* "*") (cast_expression "(char *)(param_1 + 0x195)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x195)" (( "(") (binary_expression "param_1 + 0x195" (identifier "param_1") (+ "+") (number_literal "0x195")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }\n        }" ({ "{") (if_statement "if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }\n          else {\n            local_6c = -1;\n          }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0))" (( "(") (binary_expression "*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)" (pointer_expression "*(uint *)(param_1 + 0x19c)" (* "*") (cast_expression "(uint *)(param_1 + 0x19c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x19c)" (( "(") (binary_expression "param_1 + 0x19c" (identifier "param_1") (+ "+") (number_literal "0x19c")) () ")")))) (< "<") (pointer_expression "*(uint *)(param_1 + 0x1a0)" (* "*") (cast_expression "(uint *)(param_1 + 0x1a0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1a0)" (( "(") (binary_expression "param_1 + 0x1a0" (identifier "param_1") (+ "+") (number_literal "0x1a0")) () ")"))))) () ")")) (compound_statement "{\n            if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }\n          }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x196) == '\0') {\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }\n            else {\n              local_6c = -1;\n            }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x196) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x196) == '\0'" (pointer_expression "*(char *)(param_1 + 0x196)" (* "*") (cast_expression "(char *)(param_1 + 0x196)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x196)" (( "(") (binary_expression "param_1 + 0x196" (identifier "param_1") (+ "+") (number_literal "0x196")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              __fds->fd = local_6c;\n              __fds->events = 1;\n              __fds->revents = 0;\n              local_6c = 0;\n              local_78 = 1;\n            }" ({ "{") (expression_statement "__fds->fd = local_6c;" (assignment_expression "__fds->fd = local_6c" (field_expression "__fds->fd" (identifier "__fds") (-> "->") (field_identifier "fd")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "__fds->events = 1;" (assignment_expression "__fds->events = 1" (field_expression "__fds->events" (identifier "__fds") (-> "->") (field_identifier "events")) (= "=") (number_literal "1")) (; ";")) (expression_statement "__fds->revents = 0;" (assignment_expression "__fds->revents = 0" (field_expression "__fds->revents" (identifier "__fds") (-> "->") (field_identifier "revents")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" (identifier "local_78") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n              local_6c = -1;\n            }" (else "else") (compound_statement "{\n              local_6c = -1;\n            }" ({ "{") (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" (identifier "local_6c") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            local_6c = -1;\n          }" (else "else") (compound_statement "{\n            local_6c = -1;\n          }" ({ "{") (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" (identifier "local_6c") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_6c = -1;\n        }" (else "else") (compound_statement "{\n          local_6c = -1;\n        }" ({ "{") (expression_statement "local_6c = -1;" (assignment_expression "local_6c = -1" (identifier "local_6c") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_70 = *(uint *)(param_1 + 400);" (assignment_expression "local_70 = *(uint *)(param_1 + 400)" (identifier "local_70") (= "=") (pointer_expression "*(uint *)(param_1 + 400)" (* "*") (cast_expression "(uint *)(param_1 + 400)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")"))))) (; ";")) (if_statement "if (local_70 != 0xffffffff) {\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" (if "if") (parenthesized_expression "(local_70 != 0xffffffff)" (( "(") (binary_expression "local_70 != 0xffffffff" (identifier "local_70") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        ppVar1 = __fds + local_78;\n        ppVar1->fd = local_70;\n        ppVar1->events = 1;\n        ppVar1->revents = 0;\n        local_70 = local_78;\n        local_78 = local_78 + 1;\n      }" ({ "{") (expression_statement "ppVar1 = __fds + local_78;" (assignment_expression "ppVar1 = __fds + local_78" (identifier "ppVar1") (= "=") (binary_expression "__fds + local_78" (identifier "__fds") (+ "+") (identifier "local_78"))) (; ";")) (expression_statement "ppVar1->fd = local_70;" (assignment_expression "ppVar1->fd = local_70" (field_expression "ppVar1->fd" (identifier "ppVar1") (-> "->") (field_identifier "fd")) (= "=") (identifier "local_70")) (; ";")) (expression_statement "ppVar1->events = 1;" (assignment_expression "ppVar1->events = 1" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (= "=") (number_literal "1")) (; ";")) (expression_statement "ppVar1->revents = 0;" (assignment_expression "ppVar1->revents = 0" (field_expression "ppVar1->revents" (identifier "ppVar1") (-> "->") (field_identifier "revents")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = local_78;" (assignment_expression "local_70 = local_78" (identifier "local_70") (= "=") (identifier "local_78")) (; ";")) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" (identifier "local_78") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {\n        uVar17 = 0x7fffffff;\n      }" (if "if") (parenthesized_expression "(((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68))" (( "(") (binary_expression "((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&\n         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)" (parenthesized_expression "((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1))" (( "(") (binary_expression "(((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&\n          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)" (parenthesized_expression "(((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0))" (( "(") (binary_expression "((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)" (parenthesized_expression "((int)uVar17 != 0)" (( "(") (binary_expression "(int)uVar17 != 0" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)" (( "(") (comma_expression "uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0" (assignment_expression "uVar17 = 0xffffffff" (identifier "uVar17") (= "=") (number_literal "0xffffffff")) (, ",") (binary_expression "(*(byte *)(param_1 + 0x1b4) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x1b4) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 0x1b4) & 4" (pointer_expression "*(byte *)(param_1 + 0x1b4)" (* "*") (cast_expression "(byte *)(param_1 + 0x1b4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1b4)" (( "(") (binary_expression "param_1 + 0x1b4" (identifier "param_1") (+ "+") (number_literal "0x1b4")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)" (( "(") (comma_expression "iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1" (assignment_expression "iVar7 = MHD_get_timeout(param_1,&local_68)" (identifier "iVar7") (= "=") (call_expression "MHD_get_timeout(param_1,&local_68)" (identifier "MHD_get_timeout") (argument_list "(param_1,&local_68)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")")))) (, ",") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)" (( "(") (comma_expression "uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68" (assignment_expression "uVar17 = local_68 & 0xffffffff" (identifier "uVar17") (= "=") (binary_expression "local_68 & 0xffffffff" (identifier "local_68") (& "&") (number_literal "0xffffffff"))) (, ",") (binary_expression "0x7fffffff < local_68" (number_literal "0x7fffffff") (< "<") (identifier "local_68"))) () ")"))) () ")")) (compound_statement "{\n        uVar17 = 0x7fffffff;\n      }" ({ "{") (expression_statement "uVar17 = 0x7fffffff;" (assignment_expression "uVar17 = 0x7fffffff" (identifier "uVar17") (= "=") (number_literal "0x7fffffff")) (; ";")) (} "}"))) (expression_statement "iVar7 = (int)uVar17;" (assignment_expression "iVar7 = (int)uVar17" (identifier "iVar7") (= "=") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x18)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (lVar11 == 0) {\n        iVar6 = 0;\n      }\n      else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" (else "else") (compound_statement "{\n        iVar6 = 0;\n        do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);\n      }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        } while (lVar11 != 0);" (do "do") (compound_statement "{\n          ppVar1 = __fds + (local_78 + iVar6);\n          ppVar1->fd = *(int *)(lVar11 + 0x130);\n          iVar7 = *(int *)(lVar11 + 0x144);\n          if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }\n          iVar7 = (int)uVar17;\n          iVar6 = iVar6 + 1;\n          lVar11 = *(long *)(lVar11 + 0x18);\n        }" ({ "{") (expression_statement "ppVar1 = __fds + (local_78 + iVar6);" (assignment_expression "ppVar1 = __fds + (local_78 + iVar6)" (identifier "ppVar1") (= "=") (binary_expression "__fds + (local_78 + iVar6)" (identifier "__fds") (+ "+") (parenthesized_expression "(local_78 + iVar6)" (( "(") (binary_expression "local_78 + iVar6" (identifier "local_78") (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "ppVar1->fd = *(int *)(lVar11 + 0x130);" (assignment_expression "ppVar1->fd = *(int *)(lVar11 + 0x130)" (field_expression "ppVar1->fd" (identifier "ppVar1") (-> "->") (field_identifier "fd")) (= "=") (pointer_expression "*(int *)(lVar11 + 0x130)" (* "*") (cast_expression "(int *)(lVar11 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x130)" (( "(") (binary_expression "lVar11 + 0x130" (identifier "lVar11") (+ "+") (number_literal "0x130")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(lVar11 + 0x144);" (assignment_expression "iVar7 = *(int *)(lVar11 + 0x144)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(lVar11 + 0x144)" (* "*") (cast_expression "(int *)(lVar11 + 0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x144)" (( "(") (binary_expression "lVar11 + 0x144" (identifier "lVar11") (+ "+") (number_literal "0x144")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 1) {\n            ppVar1->events = ppVar1->events | 6;\n          }\n          else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (if "if") (parenthesized_expression "(iVar7 == 1)" (( "(") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            ppVar1->events = ppVar1->events | 6;\n          }" ({ "{") (expression_statement "ppVar1->events = ppVar1->events | 6;" (assignment_expression "ppVar1->events = ppVar1->events | 6" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (= "=") (binary_expression "ppVar1->events | 6" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (| "|") (number_literal "6"))) (; ";")) (} "}")) (else_clause "else if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (else "else") (if_statement "if (iVar7 == 0) {\n            ppVar1->events = ppVar1->events | 3;\n          }\n          else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            ppVar1->events = ppVar1->events | 3;\n          }" ({ "{") (expression_statement "ppVar1->events = ppVar1->events | 3;" (assignment_expression "ppVar1->events = ppVar1->events | 3" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (= "=") (binary_expression "ppVar1->events | 3" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (| "|") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (else "else") (if_statement "if (iVar7 == 2) {\n            ppVar1->events = ppVar1->events | 2;\n          }\n          else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (if "if") (parenthesized_expression "(iVar7 == 2)" (( "(") (binary_expression "iVar7 == 2" (identifier "iVar7") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            ppVar1->events = ppVar1->events | 2;\n          }" ({ "{") (expression_statement "ppVar1->events = ppVar1->events | 2;" (assignment_expression "ppVar1->events = ppVar1->events | 2" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (= "=") (binary_expression "ppVar1->events | 2" (field_expression "ppVar1->events" (identifier "ppVar1") (-> "->") (field_identifier "events")) (| "|") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (else "else") (if_statement "if (iVar7 == 3) {\n            uVar17 = 0;\n          }" (if "if") (parenthesized_expression "(iVar7 == 3)" (( "(") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            uVar17 = 0;\n          }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (} "}"))))))))) (expression_statement "iVar7 = (int)uVar17;" (assignment_expression "iVar7 = (int)uVar17" (identifier "iVar7") (= "=") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar11 + 0x18)" (* "*") (cast_expression "(long *)(lVar11 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x18)" (( "(") (binary_expression "lVar11 + 0x18" (identifier "lVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "plVar13 = *(long **)(param_1 + 0x1c8);" (assignment_expression "plVar13 = *(long **)(param_1 + 0x1c8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(param_1 + 0x1c8)" (* "*") (cast_expression "(long **)(param_1 + 0x1c8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c8)" (( "(") (binary_expression "param_1 + 0x1c8" (identifier "param_1") (+ "+") (number_literal "0x1c8")) () ")"))))) (; ";")) (if_statement "if (plVar13 != (long *)0x0) {\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }" (if "if") (parenthesized_expression "(plVar13 != (long *)0x0)" (( "(") (binary_expression "plVar13 != (long *)0x0" (identifier "plVar13") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_74 = iVar6 + local_78;\n        do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);\n      }" ({ "{") (expression_statement "local_74 = iVar6 + local_78;" (assignment_expression "local_74 = iVar6 + local_78" (identifier "local_74") (= "=") (binary_expression "iVar6 + local_78" (identifier "iVar6") (+ "+") (identifier "local_78"))) (; ";")) (do_statement "do {\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        } while (plVar13 != (long *)0x0);" (do "do") (compound_statement "{\n          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);\n          (__fds + local_74)[1].fd = (int)plVar13[0xf];\n          FUN_00108e38(plVar13);\n          plVar13 = (long *)plVar13[2];\n          local_74 = local_74 + 2;\n        }" ({ "{") (expression_statement "__fds[local_74].fd = *(int *)(*plVar13 + 0x130);" (assignment_expression "__fds[local_74].fd = *(int *)(*plVar13 + 0x130)" (field_expression "__fds[local_74].fd" (subscript_expression "__fds[local_74]" (identifier "__fds") ([ "[") (identifier "local_74") (] "]")) (. ".") (field_identifier "fd")) (= "=") (pointer_expression "*(int *)(*plVar13 + 0x130)" (* "*") (cast_expression "(int *)(*plVar13 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar13 + 0x130)" (( "(") (binary_expression "*plVar13 + 0x130" (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) (+ "+") (number_literal "0x130")) () ")"))))) (; ";")) (expression_statement "(__fds + local_74)[1].fd = (int)plVar13[0xf];" (assignment_expression "(__fds + local_74)[1].fd = (int)plVar13[0xf]" (field_expression "(__fds + local_74)[1].fd" (subscript_expression "(__fds + local_74)[1]" (parenthesized_expression "(__fds + local_74)" (( "(") (binary_expression "__fds + local_74" (identifier "__fds") (+ "+") (identifier "local_74")) () ")")) ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "fd")) (= "=") (cast_expression "(int)plVar13[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar13[0xf]" (identifier "plVar13") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "FUN_00108e38(plVar13);" (call_expression "FUN_00108e38(plVar13)" (identifier "FUN_00108e38") (argument_list "(plVar13)" (( "(") (identifier "plVar13") () ")"))) (; ";")) (expression_statement "plVar13 = (long *)plVar13[2];" (assignment_expression "plVar13 = (long *)plVar13[2]" (identifier "plVar13") (= "=") (cast_expression "(long *)plVar13[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar13[2]" (identifier "plVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_74 = local_74 + 2;" (assignment_expression "local_74 = local_74 + 2" (identifier "local_74") (= "=") (binary_expression "local_74 + 2" (identifier "local_74") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar13 != (long *)0x0)" (( "(") (binary_expression "plVar13 != (long *)0x0" (identifier "plVar13") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (local_78 + uVar14 == 0) {\n        free(__fds);\n        uVar8 = 1;\n      }\n      else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(local_78 + uVar14 == 0)" (( "(") (binary_expression "local_78 + uVar14 == 0" (binary_expression "local_78 + uVar14" (identifier "local_78") (+ "+") (identifier "uVar14")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        free(__fds);\n        uVar8 = 1;\n      }" ({ "{") (expression_statement "free(__fds);" (call_expression "free(__fds)" (identifier "free") (argument_list "(__fds)" (( "(") (identifier "__fds") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);\n        if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);" (assignment_expression "iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7)" (identifier "iVar7") (= "=") (call_expression "poll(__fds,(ulong)(local_78 + uVar14),iVar7)" (identifier "poll") (argument_list "(__fds,(ulong)(local_78 + uVar14),iVar7)" (( "(") (identifier "__fds") (, ",") (call_expression "(ulong)(local_78 + uVar14)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(local_78 + uVar14)" (( "(") (binary_expression "local_78 + uVar14" (identifier "local_78") (+ "+") (identifier "uVar14")) () ")"))) (, ",") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar7 < 0) {\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }\n        else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          piVar9 = __errno_location();\n          if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" ({ "{") (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" (identifier "piVar9") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar9 == 4) {\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" (if "if") (parenthesized_expression "(*piVar9 == 4)" (( "(") (binary_expression "*piVar9 == 4" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            free(__fds);\n            uVar8 = 1;\n          }" ({ "{") (expression_statement "free(__fds);" (call_expression "free(__fds)" (identifier "free") (argument_list "(__fds)" (( "(") (identifier "__fds") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" (else "else") (compound_statement "{\n            pcVar10 = strerror(*piVar9);\n            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n            free(__fds);\n            uVar8 = 0;\n          }" ({ "{") (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" (identifier "pcVar10") (= "=") (call_expression "strerror(*piVar9)" (identifier "strerror") (argument_list "(*piVar9)" (( "(") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) () ")")))) (; ";")) (expression_statement "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10)" (identifier "FUN_00110c11") (argument_list "(param_1,"poll failed: %s\n",pcVar10)" (( "(") (identifier "param_1") (, ",") (string_literal ""poll failed: %s\n"" (" """) (string_content "poll failed: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "free(__fds);" (call_expression "free(__fds)" (identifier "free") (argument_list "(__fds)" (( "(") (identifier "__fds") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          *(undefined1 *)(param_1 + 0x198) = 0;\n          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }\n          if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }\n        }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0x198) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x198) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x198)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x198)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x198)" (( "(") (binary_expression "param_1 + 0x198" (identifier "param_1") (+ "+") (number_literal "0x198")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {\n            read(*(int *)(param_1 + 400),local_60,8);\n          }" (if "if") (parenthesized_expression "((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0))" (( "(") (binary_expression "(local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)" (parenthesized_expression "(local_70 != 0xffffffff)" (( "(") (binary_expression "local_70 != 0xffffffff" (identifier "local_70") (!= "!=") (number_literal "0xffffffff")) () ")")) (&& "&&") (parenthesized_expression "((__fds[(int)local_70].revents & 1) != 0)" (( "(") (binary_expression "(__fds[(int)local_70].revents & 1) != 0" (parenthesized_expression "(__fds[(int)local_70].revents & 1)" (( "(") (binary_expression "__fds[(int)local_70].revents & 1" (field_expression "__fds[(int)local_70].revents" (subscript_expression "__fds[(int)local_70]" (identifier "__fds") ([ "[") (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (] "]")) (. ".") (field_identifier "revents")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            read(*(int *)(param_1 + 400),local_60,8);\n          }" ({ "{") (expression_statement "read(*(int *)(param_1 + 400),local_60,8);" (call_expression "read(*(int *)(param_1 + 400),local_60,8)" (identifier "read") (argument_list "(*(int *)(param_1 + 400),local_60,8)" (( "(") (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (, ",") (identifier "local_60") (, ",") (number_literal "8") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(param_1 + 0x194) == '\0') {\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }\n          else {\n            free(__fds);\n            uVar8 = 0;\n          }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x194) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x194) == '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" (* "*") (cast_expression "(char *)(param_1 + 0x194)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            lVar11 = *(long *)(param_1 + 0x18);\n            if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }\n            uVar16 = local_78 + 1 + uVar16;\n            plVar13 = *(long **)(param_1 + 0x1c8);\n            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }\n            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }\n            free(__fds);\n            uVar8 = 1;\n          }" ({ "{") (expression_statement "lVar11 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x18)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (lVar11 != 0) {\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }" (if "if") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              lVar4 = *(long *)(lVar11 + 0x18);\n              if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }\n            }" ({ "{") (expression_statement "lVar4 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar4 = *(long *)(lVar11 + 0x18)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(lVar11 + 0x18)" (* "*") (cast_expression "(long *)(lVar11 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x18)" (( "(") (binary_expression "lVar11 + 0x18" (identifier "lVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (uVar14 == 0) {\n                uVar16 = 0;\n              }\n              else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar16 = 0;\n              }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" (else "else") (compound_statement "{\n                do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));\n              }" ({ "{") (do_statement "do {\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                } while ((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));" (do "do") (compound_statement "{\n                  lVar12 = lVar4;\n                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }\n                }" ({ "{") (expression_statement "lVar12 = lVar4;" (assignment_expression "lVar12 = lVar4" (identifier "lVar12") (= "=") (identifier "lVar4")) (; ";")) (if_statement "if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }" (if "if") (parenthesized_expression "(__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130))" (( "(") (binary_expression "__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)" (field_expression "__fds[local_78 + uVar16].fd" (subscript_expression "__fds[local_78 + uVar16]" (identifier "__fds") ([ "[") (binary_expression "local_78 + uVar16" (identifier "local_78") (+ "+") (identifier "uVar16")) (] "]")) (. ".") (field_identifier "fd")) (== "==") (pointer_expression "*(int *)(lVar11 + 0x130)" (* "*") (cast_expression "(int *)(lVar11 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x130)" (( "(") (binary_expression "lVar11 + 0x130" (identifier "lVar11") (+ "+") (number_literal "0x130")) () ")"))))) () ")")) (compound_statement "{\n                    uVar2 = __fds[local_78 + uVar16].revents;\n                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);\n                    uVar16 = uVar16 + 1;\n                  }" ({ "{") (expression_statement "uVar2 = __fds[local_78 + uVar16].revents;" (assignment_expression "uVar2 = __fds[local_78 + uVar16].revents" (identifier "uVar2") (= "=") (field_expression "__fds[local_78 + uVar16].revents" (subscript_expression "__fds[local_78 + uVar16]" (identifier "__fds") ([ "[") (binary_expression "local_78 + uVar16" (identifier "local_78") (+ "+") (identifier "uVar16")) (] "]")) (. ".") (field_identifier "revents"))) (; ";")) (expression_statement "FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);" (call_expression "FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0)" (identifier "FUN_001097b0") (argument_list "(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0)" (( "(") (identifier "lVar11") (, ",") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) (, ",") (binary_expression "uVar2 >> 2 & 1" (binary_expression "uVar2 >> 2" (identifier "uVar2") (>> ">>") (number_literal "2")) (& "&") (number_literal "1")) (, ",") (binary_expression "(uVar2 & 0xba) != 0" (parenthesized_expression "(uVar2 & 0xba)" (( "(") (binary_expression "uVar2 & 0xba" (identifier "uVar2") (& "&") (number_literal "0xba")) () ")")) (!= "!=") (number_literal "0")) () ")"))) (; ";")) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14))" (( "(") (binary_expression "(lVar12 != 0) &&\n                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14)" (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14)" (( "(") (comma_expression "lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14" (assignment_expression "lVar4 = *(long *)(lVar12 + 0x18)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(lVar12 + 0x18)" (* "*") (cast_expression "(long *)(lVar12 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x18)" (( "(") (binary_expression "lVar12 + 0x18" (identifier "lVar12") (+ "+") (number_literal "0x18")) () ")"))))) (, ",") (comma_expression "lVar11 = lVar12, uVar16 < uVar14" (assignment_expression "lVar11 = lVar12" (identifier "lVar11") (= "=") (identifier "lVar12")) (, ",") (binary_expression "uVar16 < uVar14" (identifier "uVar16") (< "<") (identifier "uVar14")))) () ")"))) () ")")) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar16 = local_78 + 1 + uVar16;" (assignment_expression "uVar16 = local_78 + 1 + uVar16" (identifier "uVar16") (= "=") (binary_expression "local_78 + 1 + uVar16" (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1")) (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "plVar13 = *(long **)(param_1 + 0x1c8);" (assignment_expression "plVar13 = *(long **)(param_1 + 0x1c8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(param_1 + 0x1c8)" (* "*") (cast_expression "(long **)(param_1 + 0x1c8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c8)" (( "(") (binary_expression "param_1 + 0x1c8" (identifier "param_1") (+ "+") (number_literal "0x1c8")) () ")"))))) (; ";")) (while_statement "while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }" (while "while") (parenthesized_expression "((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf])))" (( "(") (parenthesized_expression "(((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))" (( "(") (binary_expression "((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )) && (__fds[uVar16].fd == (int)plVar13[0xf])" (parenthesized_expression "((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    ))" (( "(") (binary_expression "(~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&\n                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )" (parenthesized_expression "(~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0))" (( "(") (binary_expression "~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)" (binary_expression "~local_78 + uVar16 < uVar14" (binary_expression "~local_78 + uVar16" (unary_expression "~local_78" (~ "~") (identifier "local_78")) (+ "+") (identifier "uVar16")) (< "<") (identifier "uVar14")) (&& "&&") (parenthesized_expression "(plVar13 != (long *)0x0)" (( "(") (binary_expression "plVar13 != (long *)0x0" (identifier "plVar13") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)\n                    )" (( "(") (comma_expression "plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)" (assignment_expression "plVar3 = (long *)plVar13[2]" (identifier "plVar3") (= "=") (cast_expression "(long *)plVar13[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar13[2]" (identifier "plVar13") ([ "[") (number_literal "2") (] "]")))) (, ",") (binary_expression "__fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)" (field_expression "__fds[uVar16 - 1].fd" (subscript_expression "__fds[uVar16 - 1]" (identifier "__fds") ([ "[") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1")) (] "]")) (. ".") (field_identifier "fd")) (== "==") (pointer_expression "*(int *)(*plVar13 + 0x130)" (* "*") (cast_expression "(int *)(*plVar13 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar13 + 0x130)" (( "(") (binary_expression "*plVar13 + 0x130" (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) (+ "+") (number_literal "0x130")) () ")")))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(__fds[uVar16].fd == (int)plVar13[0xf])" (( "(") (binary_expression "__fds[uVar16].fd == (int)plVar13[0xf]" (field_expression "__fds[uVar16].fd" (subscript_expression "__fds[uVar16]" (identifier "__fds") ([ "[") (identifier "uVar16") (] "]")) (. ".") (field_identifier "fd")) (== "==") (cast_expression "(int)plVar13[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar13[0xf]" (identifier "plVar13") ([ "[") (number_literal "0xf") (] "]")))) () ")"))) () ")")) () ")")) (compound_statement "{\n              FUN_00108ebd(plVar13);\n              FUN_001098d1(plVar13);\n              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }\n              uVar16 = uVar16 + 2;\n              plVar13 = plVar3;\n            }" ({ "{") (expression_statement "FUN_00108ebd(plVar13);" (call_expression "FUN_00108ebd(plVar13)" (identifier "FUN_00108ebd") (argument_list "(plVar13)" (( "(") (identifier "plVar13") () ")"))) (; ";")) (expression_statement "FUN_001098d1(plVar13);" (call_expression "FUN_001098d1(plVar13)" (identifier "FUN_001098d1") (argument_list "(plVar13)" (( "(") (identifier "plVar13") () ")"))) (; ";")) (if_statement "if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }" (if "if") (parenthesized_expression "(((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0))))" (( "(") (binary_expression "((plVar13[8] == 0) && (plVar13[9] == 0)) &&\n                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))" (parenthesized_expression "((plVar13[8] == 0) && (plVar13[9] == 0))" (( "(") (binary_expression "(plVar13[8] == 0) && (plVar13[9] == 0)" (parenthesized_expression "(plVar13[8] == 0)" (( "(") (binary_expression "plVar13[8] == 0" (subscript_expression "plVar13[8]" (identifier "plVar13") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(plVar13[9] == 0)" (( "(") (binary_expression "plVar13[9] == 0" (subscript_expression "plVar13[9]" (identifier "plVar13") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((plVar13[10] == 0 && (plVar13[0xb] == 0)))" (( "(") (parenthesized_expression "(plVar13[10] == 0 && (plVar13[0xb] == 0))" (( "(") (binary_expression "plVar13[10] == 0 && (plVar13[0xb] == 0)" (binary_expression "plVar13[10] == 0" (subscript_expression "plVar13[10]" (identifier "plVar13") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(plVar13[0xb] == 0)" (( "(") (binary_expression "plVar13[0xb] == 0" (subscript_expression "plVar13[0xb]" (identifier "plVar13") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                FUN_0010618a(*plVar13);\n                *(undefined1 *)((long)plVar13 + 0x89) = 1;\n                MHD_resume_connection(*plVar13);\n              }" ({ "{") (expression_statement "FUN_0010618a(*plVar13);" (call_expression "FUN_0010618a(*plVar13)" (identifier "FUN_0010618a") (argument_list "(*plVar13)" (( "(") (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)((long)plVar13 + 0x89) = 1;" (assignment_expression "*(undefined1 *)((long)plVar13 + 0x89) = 1" (pointer_expression "*(undefined1 *)((long)plVar13 + 0x89)" (* "*") (cast_expression "(undefined1 *)((long)plVar13 + 0x89)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar13 + 0x89)" (( "(") (binary_expression "(long)plVar13 + 0x89" (cast_expression "(long)plVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar13")) (+ "+") (number_literal "0x89")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "MHD_resume_connection(*plVar13);" (call_expression "MHD_resume_connection(*plVar13)" (identifier "MHD_resume_connection") (argument_list "(*plVar13)" (( "(") (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar16 + 2;" (assignment_expression "uVar16 = uVar16 + 2" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 2" (identifier "uVar16") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "plVar13 = plVar3;" (assignment_expression "plVar13 = plVar3" (identifier "plVar13") (= "=") (identifier "plVar3")) (; ";")) (} "}"))) (if_statement "if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {\n              FUN_0010bb71(param_1);\n            }" (if "if") (parenthesized_expression "((local_6c != -1) && ((__fds->revents & 1) != 0))" (( "(") (binary_expression "(local_6c != -1) && ((__fds->revents & 1) != 0)" (parenthesized_expression "(local_6c != -1)" (( "(") (binary_expression "local_6c != -1" (identifier "local_6c") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "((__fds->revents & 1) != 0)" (( "(") (binary_expression "(__fds->revents & 1) != 0" (parenthesized_expression "(__fds->revents & 1)" (( "(") (binary_expression "__fds->revents & 1" (field_expression "__fds->revents" (identifier "__fds") (-> "->") (field_identifier "revents")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              FUN_0010bb71(param_1);\n            }" ({ "{") (expression_statement "FUN_0010bb71(param_1);" (call_expression "FUN_0010bb71(param_1)" (identifier "FUN_0010bb71") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "free(__fds);" (call_expression "free(__fds)" (identifier "free") (argument_list "(__fds)" (( "(") (identifier "__fds") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            free(__fds);\n            uVar8 = 0;\n          }" (else "else") (compound_statement "{\n            free(__fds);\n            uVar8 = 0;\n          }" ({ "{") (expression_statement "free(__fds);" (call_expression "free(__fds)" (identifier "free") (argument_list "(__fds)" (( "(") (identifier "__fds") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (goto_statement "goto LAB_0010e779;" (goto "goto") (statement_identifier "LAB_0010e779") (; ";")) (} "}"))) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x178);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x178)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x178)" (* "*") (cast_expression "(int *)(param_1 + 0x178)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x178)" (( "(") (binary_expression "param_1 + 0x178" (identifier "param_1") (+ "+") (number_literal "0x178")) () ")"))))) (; ";")) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 != -1) {\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }\n  }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x195) == '\0') {\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }\n    else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x195) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x195) == '\0'" (pointer_expression "*(char *)(param_1 + 0x195)" (* "*") (cast_expression "(char *)(param_1 + 0x195)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x195)" (( "(") (binary_expression "param_1 + 0x195" (identifier "param_1") (+ "+") (number_literal "0x195")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_58 = (ulong)CONCAT24(1,iVar7);\n      iVar7 = 0;\n      lVar11 = 1;\n    }" ({ "{") (expression_statement "local_58 = (ulong)CONCAT24(1,iVar7);" (assignment_expression "local_58 = (ulong)CONCAT24(1,iVar7)" (identifier "local_58") (= "=") (cast_expression "(ulong)CONCAT24(1,iVar7)" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (call_expression "CONCAT24(1,iVar7)" (identifier "CONCAT24") (argument_list "(1,iVar7)" (( "(") (number_literal "1") (, ",") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" (identifier "lVar11") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = -1;\n      lVar11 = 0;\n    }" (else "else") (compound_statement "{\n      iVar7 = -1;\n      lVar11 = 0;\n    }" ({ "{") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar6 = (int)lVar11;" (assignment_expression "iVar6 = (int)lVar11" (identifier "iVar6") (= "=") (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11"))) (; ";")) (if_statement "if (*(int *)(param_1 + 400) == -1) {\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }\n  else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 400) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 400) == -1" (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    iVar15 = -1;\n    iVar5 = iVar6;\n    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;\nLAB_0010e770:\n    uVar8 = 1;\n    if (iVar6 == 0) goto LAB_0010e779;\n    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) goto LAB_0010e7cb;\n    if (iVar15 != -1) goto LAB_0010e2a7;\n  }" ({ "{") (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" (identifier "iVar15") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" (identifier "iVar5") (= "=") (identifier "iVar6")) (; ";")) (if_statement "if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;" (if "if") (parenthesized_expression "((uVar16 & 0x2000) != 0)" (( "(") (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" (( "(") (binary_expression "uVar16 & 0x2000" (identifier "uVar16") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010e768;" (goto "goto") (statement_identifier "LAB_0010e768") (; ";"))) (labeled_statement "LAB_0010e770:\n    uVar8 = 1;" (statement_identifier "LAB_0010e770") (: ":") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (iVar6 == 0) goto LAB_0010e779;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010e779;" (goto "goto") (statement_identifier "LAB_0010e779") (; ";"))) (expression_statement "iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);" (assignment_expression "iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" (identifier "iVar6") (= "=") (call_expression "__poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" (identifier "__poll_chk") (argument_list "(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "iVar6") (, ",") (unary_expression "-(uint)((int)param_2 != 0)" (- "-") (call_expression "(uint)((int)param_2 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_2 != 0)" (( "(") (binary_expression "(int)param_2 != 0" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (!= "!=") (number_literal "0")) () ")")))) (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) goto LAB_0010e7cb;" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010e7cb;" (goto "goto") (statement_identifier "LAB_0010e7cb") (; ";"))) (if_statement "if (iVar15 != -1) goto LAB_0010e2a7;" (if "if") (parenthesized_expression "(iVar15 != -1)" (( "(") (binary_expression "iVar15 != -1" (identifier "iVar15") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0010e2a7;" (goto "goto") (statement_identifier "LAB_0010e2a7") (; ";"))) (} "}")) (else_clause "else {\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" (else "else") (compound_statement "{\n    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);\n    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;\n    iVar15 = iVar6;\n    iVar5 = iVar6 + 1;\n    if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }\n    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);\n    if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }\nLAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }\n  }" ({ "{") (expression_statement "*(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);" (assignment_expression "*(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400)" (pointer_expression "*(int *)(&local_58 + lVar11)" (* "*") (cast_expression "(int *)(&local_58 + lVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&local_58 + lVar11)" (( "(") (binary_expression "&local_58 + lVar11" (pointer_expression "&local_58" (& "&") (identifier "local_58")) (+ "+") (identifier "lVar11")) () ")")))) (= "=") (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")"))))) (; ";")) (expression_statement "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;" (assignment_expression "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1" (pointer_expression "*(undefined2 *)((long)&local_58 + lVar11 * 8 + 4)" (* "*") (cast_expression "(undefined2 *)((long)&local_58 + lVar11 * 8 + 4)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_58 + lVar11 * 8 + 4)" (( "(") (binary_expression "(long)&local_58 + lVar11 * 8 + 4" (binary_expression "(long)&local_58 + lVar11 * 8" (cast_expression "(long)&local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (+ "+") (binary_expression "lVar11 * 8" (identifier "lVar11") (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar15 = iVar6;" (assignment_expression "iVar15 = iVar6" (identifier "iVar15") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar5 = iVar6 + 1;" (assignment_expression "iVar5 = iVar6 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar16 & 0x2000) != 0) {\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }" (if "if") (parenthesized_expression "((uVar16 & 0x2000) != 0)" (( "(") (binary_expression "(uVar16 & 0x2000) != 0" (parenthesized_expression "(uVar16 & 0x2000)" (( "(") (binary_expression "uVar16 & 0x2000" (identifier "uVar16") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010e768:\n      iVar6 = iVar5;\n      FUN_00109311(param_1);\n      goto LAB_0010e770;\n    }" ({ "{") (labeled_statement "LAB_0010e768:\n      iVar6 = iVar5;" (statement_identifier "LAB_0010e768") (: ":") (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" (identifier "iVar6") (= "=") (identifier "iVar5")) (; ";"))) (expression_statement "FUN_00109311(param_1);" (call_expression "FUN_00109311(param_1)" (identifier "FUN_00109311") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (goto_statement "goto LAB_0010e770;" (goto "goto") (statement_identifier "LAB_0010e770") (; ";")) (} "}"))) (expression_statement "iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);" (assignment_expression "iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" (identifier "iVar6") (= "=") (call_expression "__poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" (identifier "__poll_chk") (argument_list "(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) (, ",") (unary_expression "-(uint)((int)param_2 != 0)" (- "-") (call_expression "(uint)((int)param_2 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_2 != 0)" (( "(") (binary_expression "(int)param_2 != 0" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (!= "!=") (number_literal "0")) () ")")))) (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010e7cb:\n      piVar9 = __errno_location();\n      uVar8 = 1;\n      if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }\n      goto LAB_0010e779;\n    }" ({ "{") (labeled_statement "LAB_0010e7cb:\n      piVar9 = __errno_location();" (statement_identifier "LAB_0010e7cb") (: ":") (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" (identifier "piVar9") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*piVar9 != 4) {\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }" (if "if") (parenthesized_expression "(*piVar9 != 4)" (( "(") (binary_expression "*piVar9 != 4" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        pcVar10 = strerror(*piVar9);\n        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);\n        uVar8 = 0;\n      }" ({ "{") (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" (identifier "pcVar10") (= "=") (call_expression "strerror(*piVar9)" (identifier "strerror") (argument_list "(*piVar9)" (( "(") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) () ")")))) (; ";")) (expression_statement "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);" (call_expression "FUN_00110c11(param_1,"poll failed: %s\n",pcVar10)" (identifier "FUN_00110c11") (argument_list "(param_1,"poll failed: %s\n",pcVar10)" (( "(") (identifier "param_1") (, ",") (string_literal ""poll failed: %s\n"" (" """) (string_content "poll failed: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_0010e779;" (goto "goto") (statement_identifier "LAB_0010e779") (; ";")) (} "}"))) (labeled_statement "LAB_0010e2a7:\n    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" (statement_identifier "LAB_0010e2a7") (: ":") (if_statement "if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" (if "if") (parenthesized_expression "((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0)" (( "(") (binary_expression "(*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1)" (( "(") (binary_expression "*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1" (pointer_expression "*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6)" (* "*") (cast_expression "(byte *)((long)&local_58 + (long)iVar15 * 8 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_58 + (long)iVar15 * 8 + 6)" (( "(") (binary_expression "(long)&local_58 + (long)iVar15 * 8 + 6" (binary_expression "(long)&local_58 + (long)iVar15 * 8" (cast_expression "(long)&local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (+ "+") (binary_expression "(long)iVar15 * 8" (cast_expression "(long)iVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar15")) (* "*") (number_literal "8"))) (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      read(*(int *)(param_1 + 400),local_60,8);\n    }" ({ "{") (expression_statement "read(*(int *)(param_1 + 400),local_60,8);" (call_expression "read(*(int *)(param_1 + 400),local_60,8)" (identifier "read") (argument_list "(*(int *)(param_1 + 400),local_60,8)" (( "(") (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (, ",") (identifier "local_60") (, ",") (number_literal "8") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }" (if "if") (parenthesized_expression "(((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0))" (( "(") (binary_expression "((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&\n     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)" (parenthesized_expression "((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1))" (( "(") (binary_expression "(*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)" (parenthesized_expression "(*(char *)(param_1 + 0x194) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x194) == '\0'" (pointer_expression "*(char *)(param_1 + 0x194)" (* "*") (cast_expression "(char *)(param_1 + 0x194)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = 1, iVar7 != -1)" (( "(") (comma_expression "uVar8 = 1, iVar7 != -1" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (, ",") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)" (( "(") (binary_expression "(*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0" (parenthesized_expression "(*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1)" (( "(") (binary_expression "*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1" (pointer_expression "*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6)" (* "*") (cast_expression "(byte *)((long)&local_58 + (long)iVar7 * 8 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_58 + (long)iVar7 * 8 + 6)" (( "(") (binary_expression "(long)&local_58 + (long)iVar7 * 8 + 6" (binary_expression "(long)&local_58 + (long)iVar7 * 8" (cast_expression "(long)&local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (+ "+") (binary_expression "(long)iVar7 * 8" (cast_expression "(long)iVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar7")) (* "*") (number_literal "8"))) (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_0010bb71(param_1);\n    uVar8 = 1;\n  }" ({ "{") (expression_statement "FUN_0010bb71(param_1);" (call_expression "FUN_0010bb71(param_1)" (identifier "FUN_0010bb71") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_0010e779:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" (statement_identifier "LAB_0010e779") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return uVar8;\n  }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */
/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */
/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */

int function_1(type_1 *daemon,int var_18)

{
  type_2 *ppVar1;
  type_2 *p_00;
  type_3 var_33;
  type_4 var_2;
  type_5 var_21;
  long var_44;
  type_6 *pMVar6;
  type_7 *pMVar7;
  int var_6;
  type_2 *var_11;
  type_7 *var_7;
  int *piVar10;
  char *pcVar11;
  int var_41;
  long lVar13;
  type_7 *var_34;
  type_6 *var_9;
  type_8 var_8;
  int var_43;
  int var_40;
  type_8 var_31;
  long var_1;
  type_8 var_17;
  type_8 var_26;
  type_8 var_16;
  int var_15;
  type_9 var_20;
  uint64_t __b;
  type_2 p [2];
  
  var_44 = *(long *)(var_1 + 0x28);
  var_6 = 0;
  if (daemon->shutdown != false) goto LAB_0010e779;
  var_2 = daemon->options;
  if ((var_2 & var_3) == var_4) {
    if (((var_2 & 0x2000) != var_4) &&
       (var_6 = var_5(daemon), var_6 == 1)) {
      var_18 = 0;
    }
    var_7 = daemon->connections_head;
    var_31 = 0;
    var_8 = var_31;
    if (var_7 != (type_7 *)0x0) {
      var_8 = 0;
      do {
        var_8 = var_8 + 1;
        var_7 = var_7->next;
      } while (var_7 != (type_7 *)0x0);
    }
    for (var_9 = daemon->urh_head; var_9 != (type_6 *)0x0;
        var_9 = var_9->next) {
      var_8 = var_8 + 2;
    }
    var_11 = (type_2 *)var_10((ulong)(var_8 + 2),8);
    if (var_11 == (type_2 *)0x0) {
      piVar10 = var_12();
      pcVar11 = var_13(*piVar10);
      var_14(daemon,"Error allocating memory: %s\n",pcVar11);
      var_6 = 0;
    }
    else {
      var_15 = daemon->listen_fd;
      var_17 = var_31;
      if (var_15 != -1) {
        if (daemon->was_quiesced == false) {
          if (daemon->connections < daemon->connection_limit) {
            if (daemon->at_limit == false) {
              var_11->fd = var_15;
              var_11->events = 1;
              var_11->revents = 0;
              var_15 = 0;
              var_17 = 1;
            }
            else {
              var_15 = -1;
            }
          }
          else {
            var_15 = -1;
          }
        }
        else {
          var_15 = -1;
        }
      }
      var_16 = (daemon->itc).fd;
      if (var_16 != 0xffffffff) {
        ppVar1 = var_11 + var_17;
        ppVar1->fd = var_16;
        ppVar1->events = 1;
        ppVar1->revents = 0;
        var_16 = var_17;
        var_17 = var_17 + 1;
      }
      if ((((var_18 != 0) &&
           (var_18 = -1, (daemon->options & var_3) == var_4)) &&
          (var_6 = var_19(daemon,&var_20), var_6 == 1)) &&
         (var_18 = (int)var_20, 0x7fffffff < var_20)) {
        var_18 = 0x7fffffff;
      }
      var_7 = daemon->connections_tail;
      if (var_7 == (type_7 *)0x0) {
        var_6 = 0;
      }
      else {
        var_6 = 0;
        do {
          ppVar1 = var_11 + (var_17 + var_6);
          ppVar1->fd = var_7->socket_fd;
          var_21 = var_7->event_loop_info;
          if (var_21 == var_22) {
            ppVar1->events = ppVar1->events | 6;
          }
          else if (var_21 == var_23) {
            ppVar1->events = ppVar1->events | 3;
          }
          else if (var_21 == var_24) {
            ppVar1->events = ppVar1->events | 2;
          }
          else if (var_21 == var_25) {
            var_18 = 0;
          }
          var_6 = var_6 + 1;
          var_7 = var_7->prev;
        } while (var_7 != (type_7 *)0x0);
      }
      var_9 = daemon->urh_tail;
      if (var_9 != (type_6 *)0x0) {
        var_26 = var_6 + var_17;
        do {
          p_00 = (type_2 *)(var_11 + var_26);
          p_00->fd = var_9->connection->socket_fd;
          p_00[1].fd = (var_9->mhd).socket;
          var_27(var_9,p_00);
          var_9 = var_9->prev;
          var_26 = var_26 + 2;
        } while (var_9 != (type_6 *)0x0);
      }
      if (var_17 + var_8 == 0) {
        var_28(var_11);
        var_6 = 1;
      }
      else {
        var_6 = var_29(var_11,(ulong)(var_17 + var_8),var_18);
        if (var_6 < 0) {
          piVar10 = var_12();
          if (*piVar10 == 4) {
            var_28(var_11);
            var_6 = 1;
          }
          else {
            pcVar11 = var_13(*piVar10);
            var_14(daemon,"poll failed: %s\n",pcVar11);
            var_28(var_11);
            var_6 = 0;
          }
        }
        else {
          daemon->data_already_pending = false;
          if ((var_16 != 0xffffffff) && ((var_11[(int)var_16].revents & 1) != 0)) {
            var_30((daemon->itc).fd,&__b,8);
          }
          if (daemon->shutdown == false) {
            var_7 = daemon->connections_tail;
            if (var_7 != (type_7 *)0x0) {
              pMVar7 = var_7->prev;
              if (var_8 == 0) {
                var_31 = 0;
              }
              else {
                do {
                  var_34 = pMVar7;
                  if (var_11[var_17 + var_31].fd == var_7->socket_fd) {
                    var_33 = var_11[var_17 + var_31].revents;
                    var_32(var_7,(_Bool)((type_10)var_33 & 1),(_Bool)((type_10)(var_33 >> 2) & 1),
                                  (var_33 & 0xba) != 0);
                    var_31 = var_31 + 1;
                  }
                } while ((var_34 != (type_7 *)0x0) &&
                        (pMVar7 = var_34->prev, var_7 = var_34, var_31 < var_8));
              }
            }
            var_31 = var_17 + 1 + var_31;
            var_9 = daemon->urh_tail;
            while ((~var_17 + var_31 < var_8 && (var_9 != (type_6 *)0x0))) {
              pMVar6 = var_9->prev;
              if ((((type_2 *)(var_11 + (var_31 - 1)))->fd != var_9->connection->socket_fd) ||
                 (var_11[var_31].fd != (var_9->mhd).socket)) break;
              var_35(var_9,(type_2 *)(var_11 + (var_31 - 1)));
              var_36(var_9);
              if ((((var_9->in_buffer_size == 0) && (var_9->out_buffer_size == 0)) &&
                  (var_9->in_buffer_used == 0)) && (var_9->out_buffer_used == 0)) {
                var_37(var_9->connection);
                var_9->clean_ready = true;
                var_38(var_9->connection);
              }
              var_31 = var_31 + 2;
              var_9 = pMVar6;
            }
            if ((var_15 != -1) && ((var_11->revents & 1) != 0)) {
              var_39(daemon);
            }
            var_28(var_11);
            var_6 = 1;
          }
          else {
            var_28(var_11);
            var_6 = 0;
          }
        }
      }
    }
    goto LAB_0010e779;
  }
  p[0].fd = 0;
  p[0].events = 0;
  p[0].revents = 0;
  p[1].fd = 0;
  p[1].events = 0;
  p[1].revents = 0;
  var_40 = daemon->listen_fd;
  lVar13 = 0;
  if (var_40 != -1) {
    if (daemon->was_quiesced == false) {
      p[0].events = 1;
      p[0].fd = var_40;
      p[0].revents = 0;
      var_40 = 0;
      lVar13 = 1;
    }
    else {
      var_40 = -1;
      lVar13 = 0;
    }
  }
  var_41 = (int)lVar13;
  var_6 = (daemon->itc).fd;
  if (var_6 == -1) {
    var_43 = -1;
    var_6 = var_41;
    if ((var_2 & 0x2000) != var_4) goto LAB_0010e768;
LAB_0010e770:
    var_6 = 1;
    if (var_41 == 0) goto LAB_0010e779;
    var_6 = var_42(p,var_41,-(type_8)(var_18 != 0),0x10);
    if (var_6 < 0) goto LAB_0010e7cb;
    if (var_43 != -1) goto LAB_0010e2a7;
  }
  else {
    p[lVar13].fd = var_6;
    p[lVar13].events = 1;
    var_43 = var_41;
    var_6 = var_41 + 1;
    if ((var_2 & 0x2000) != var_4) {
LAB_0010e768:
      var_41 = var_6;
      var_5(daemon);
      goto LAB_0010e770;
    }
    var_6 = var_42(p,var_41 + 1,-(type_8)(var_18 != 0),0x10);
    if (var_6 < 0) {
LAB_0010e7cb:
      piVar10 = var_12();
      var_6 = 1;
      if (*piVar10 != 4) {
        pcVar11 = var_13(*piVar10);
        var_14(daemon,"poll failed: %s\n",pcVar11);
        var_6 = 0;
      }
      goto LAB_0010e779;
    }
LAB_0010e2a7:
    if ((p[var_43].revents & 1) != 0) {
      var_30((daemon->itc).fd,&__b,8);
    }
  }
  var_6 = 0;
  if (((daemon->shutdown == false) && (var_6 = 1, var_40 != -1)) && ((p[var_40].revents & 1) != 0))
  {
    var_39(daemon);
    var_6 = 1;
  }
LAB_0010e779:
  if (var_44 == *(long *)(var_1 + 0x28)) {
    return var_6;
  }
                    /* WARNING: Subroutine does not return */
  var_45();
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (identifier)) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (field_expression argument: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) index: (number_literal)) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) field: (field_identifier)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier))) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier))) field: (field_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (identifier)) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

undefined8 MASKED(long param_1,ulong param_2)

{
  pollfd *ppVar1;
  ushort uVar2;
  long *plVar3;
  long lVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined8 uVar8;
  pollfd *__fds;
  int *piVar9;
  char *pcVar10;
  long lVar11;
  long lVar12;
  long *plVar13;
  uint uVar14;
  int iVar15;
  uint uVar16;
  ulong uVar17;
  long in_FS_OFFSET;
  uint local_78;
  uint local_74;
  uint local_70;
  int local_6c;
  ulong local_68;
  undefined1 local_60 [8];
  undefined8 local_58;
  undefined8 local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar8 = 0;
  if (*(char *)(param_1 + 0x194) != '\0') goto LAB_0010e779;
  uVar17 = param_2 & 0xffffffff;
  uVar16 = *(uint *)(param_1 + 0x1b4);
  if ((uVar16 & 4) == 0) {
    if (((uVar16 & 0x2000) != 0) && (iVar7 = FUN_00109311(), iVar7 == 1)) {
      uVar17 = 0;
    }
    lVar11 = *(long *)(param_1 + 0x10);
    uVar16 = 0;
    uVar14 = uVar16;
    if (lVar11 != 0) {
      uVar14 = 0;
      do {
        uVar14 = uVar14 + 1;
        lVar11 = *(long *)(lVar11 + 0x10);
      } while (lVar11 != 0);
    }
    for (lVar11 = *(long *)(param_1 + 0x1c0); lVar11 != 0; lVar11 = *(long *)(lVar11 + 8)) {
      uVar14 = uVar14 + 2;
    }
    __fds = (pollfd *)calloc((ulong)(uVar14 + 2),8);
    if (__fds == (pollfd *)0x0) {
      piVar9 = __errno_location();
      pcVar10 = strerror(*piVar9);
      FUN_00110c11(param_1,"Error allocating memory: %s\n",pcVar10);
      uVar8 = 0;
    }
    else {
      local_6c = *(int *)(param_1 + 0x178);
      local_78 = uVar16;
      if (local_6c != -1) {
        if (*(char *)(param_1 + 0x195) == '\0') {
          if (*(uint *)(param_1 + 0x19c) < *(uint *)(param_1 + 0x1a0)) {
            if (*(char *)(param_1 + 0x196) == '\0') {
              __fds->fd = local_6c;
              __fds->events = 1;
              __fds->revents = 0;
              local_6c = 0;
              local_78 = 1;
            }
            else {
              local_6c = -1;
            }
          }
          else {
            local_6c = -1;
          }
        }
        else {
          local_6c = -1;
        }
      }
      local_70 = *(uint *)(param_1 + 400);
      if (local_70 != 0xffffffff) {
        ppVar1 = __fds + local_78;
        ppVar1->fd = local_70;
        ppVar1->events = 1;
        ppVar1->revents = 0;
        local_70 = local_78;
        local_78 = local_78 + 1;
      }
      if (((((int)uVar17 != 0) && (uVar17 = 0xffffffff, (*(byte *)(param_1 + 0x1b4) & 4) == 0)) &&
          (iVar7 = MHD_get_timeout(param_1,&local_68), iVar7 == 1)) &&
         (uVar17 = local_68 & 0xffffffff, 0x7fffffff < local_68)) {
        uVar17 = 0x7fffffff;
      }
      iVar7 = (int)uVar17;
      lVar11 = *(long *)(param_1 + 0x18);
      if (lVar11 == 0) {
        iVar6 = 0;
      }
      else {
        iVar6 = 0;
        do {
          ppVar1 = __fds + (local_78 + iVar6);
          ppVar1->fd = *(int *)(lVar11 + 0x130);
          iVar7 = *(int *)(lVar11 + 0x144);
          if (iVar7 == 1) {
            ppVar1->events = ppVar1->events | 6;
          }
          else if (iVar7 == 0) {
            ppVar1->events = ppVar1->events | 3;
          }
          else if (iVar7 == 2) {
            ppVar1->events = ppVar1->events | 2;
          }
          else if (iVar7 == 3) {
            uVar17 = 0;
          }
          iVar7 = (int)uVar17;
          iVar6 = iVar6 + 1;
          lVar11 = *(long *)(lVar11 + 0x18);
        } while (lVar11 != 0);
      }
      plVar13 = *(long **)(param_1 + 0x1c8);
      if (plVar13 != (long *)0x0) {
        local_74 = iVar6 + local_78;
        do {
          __fds[local_74].fd = *(int *)(*plVar13 + 0x130);
          (__fds + local_74)[1].fd = (int)plVar13[0xf];
          FUN_00108e38(plVar13);
          plVar13 = (long *)plVar13[2];
          local_74 = local_74 + 2;
        } while (plVar13 != (long *)0x0);
      }
      if (local_78 + uVar14 == 0) {
        free(__fds);
        uVar8 = 1;
      }
      else {
        iVar7 = poll(__fds,(ulong)(local_78 + uVar14),iVar7);
        if (iVar7 < 0) {
          piVar9 = __errno_location();
          if (*piVar9 == 4) {
            free(__fds);
            uVar8 = 1;
          }
          else {
            pcVar10 = strerror(*piVar9);
            FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);
            free(__fds);
            uVar8 = 0;
          }
        }
        else {
          *(undefined1 *)(param_1 + 0x198) = 0;
          if ((local_70 != 0xffffffff) && ((__fds[(int)local_70].revents & 1) != 0)) {
            read(*(int *)(param_1 + 400),local_60,8);
          }
          if (*(char *)(param_1 + 0x194) == '\0') {
            lVar11 = *(long *)(param_1 + 0x18);
            if (lVar11 != 0) {
              lVar4 = *(long *)(lVar11 + 0x18);
              if (uVar14 == 0) {
                uVar16 = 0;
              }
              else {
                do {
                  lVar12 = lVar4;
                  if (__fds[local_78 + uVar16].fd == *(int *)(lVar11 + 0x130)) {
                    uVar2 = __fds[local_78 + uVar16].revents;
                    FUN_001097b0(lVar11,uVar2 & 1,uVar2 >> 2 & 1,(uVar2 & 0xba) != 0);
                    uVar16 = uVar16 + 1;
                  }
                } while ((lVar12 != 0) &&
                        (lVar4 = *(long *)(lVar12 + 0x18), lVar11 = lVar12, uVar16 < uVar14));
              }
            }
            uVar16 = local_78 + 1 + uVar16;
            plVar13 = *(long **)(param_1 + 0x1c8);
            while ((((~local_78 + uVar16 < uVar14 && (plVar13 != (long *)0x0)) &&
                    (plVar3 = (long *)plVar13[2], __fds[uVar16 - 1].fd == *(int *)(*plVar13 + 0x130)
                    )) && (__fds[uVar16].fd == (int)plVar13[0xf]))) {
              FUN_00108ebd(plVar13);
              FUN_001098d1(plVar13);
              if (((plVar13[8] == 0) && (plVar13[9] == 0)) &&
                 ((plVar13[10] == 0 && (plVar13[0xb] == 0)))) {
                FUN_0010618a(*plVar13);
                *(undefined1 *)((long)plVar13 + 0x89) = 1;
                MHD_resume_connection(*plVar13);
              }
              uVar16 = uVar16 + 2;
              plVar13 = plVar3;
            }
            if ((local_6c != -1) && ((__fds->revents & 1) != 0)) {
              FUN_0010bb71(param_1);
            }
            free(__fds);
            uVar8 = 1;
          }
          else {
            free(__fds);
            uVar8 = 0;
          }
        }
      }
    }
    goto LAB_0010e779;
  }
  local_58 = 0;
  local_50 = 0;
  iVar7 = *(int *)(param_1 + 0x178);
  lVar11 = 0;
  if (iVar7 != -1) {
    if (*(char *)(param_1 + 0x195) == '\0') {
      local_58 = (ulong)CONCAT24(1,iVar7);
      iVar7 = 0;
      lVar11 = 1;
    }
    else {
      iVar7 = -1;
      lVar11 = 0;
    }
  }
  iVar6 = (int)lVar11;
  if (*(int *)(param_1 + 400) == -1) {
    iVar15 = -1;
    iVar5 = iVar6;
    if ((uVar16 & 0x2000) != 0) goto LAB_0010e768;
LAB_0010e770:
    uVar8 = 1;
    if (iVar6 == 0) goto LAB_0010e779;
    iVar6 = __poll_chk(&local_58,iVar6,-(uint)((int)param_2 != 0),0x10);
    if (iVar6 < 0) goto LAB_0010e7cb;
    if (iVar15 != -1) goto LAB_0010e2a7;
  }
  else {
    *(int *)(&local_58 + lVar11) = *(int *)(param_1 + 400);
    *(undefined2 *)((long)&local_58 + lVar11 * 8 + 4) = 1;
    iVar15 = iVar6;
    iVar5 = iVar6 + 1;
    if ((uVar16 & 0x2000) != 0) {
LAB_0010e768:
      iVar6 = iVar5;
      FUN_00109311(param_1);
      goto LAB_0010e770;
    }
    iVar6 = __poll_chk(&local_58,iVar6 + 1,-(uint)((int)param_2 != 0),0x10);
    if (iVar6 < 0) {
LAB_0010e7cb:
      piVar9 = __errno_location();
      uVar8 = 1;
      if (*piVar9 != 4) {
        pcVar10 = strerror(*piVar9);
        FUN_00110c11(param_1,"poll failed: %s\n",pcVar10);
        uVar8 = 0;
      }
      goto LAB_0010e779;
    }
LAB_0010e2a7:
    if ((*(byte *)((long)&local_58 + (long)iVar15 * 8 + 6) & 1) != 0) {
      read(*(int *)(param_1 + 400),local_60,8);
    }
  }
  uVar8 = 0;
  if (((*(char *)(param_1 + 0x194) == '\0') && (uVar8 = 1, iVar7 != -1)) &&
     ((*(byte *)((long)&local_58 + (long)iVar7 * 8 + 6) & 1) != 0)) {
    FUN_0010bb71(param_1);
    uVar8 = 1;
  }
LAB_0010e779:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar8;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

