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

void MHD_cleanup_connections(MHD_Daemon *daemon)

{
  undefined *puVar1;
  int iVar2;
  MHD_EpollState MVar3;
  int *piVar4;
  MHD_Connection *pMVar5;
  MHD_UpgradeResponseHandle *pMVar6;
  undefined4 *puVar7;
  MHD_Connection *pMVar8;
  MHD_Connection *extraout_v1;
  MHD_Daemon *daemon_00;
  undefined4 uVar9;
  MHD_Connection *pMVar10;
  MHD_Daemon *pMVar11;
  MHD_FLAG MVar12;
  MHD_mutex_ *pMVar13;
  code *pcVar14;
  code *pcVar15;
  
  pMVar13 = &daemon->cleanup_connection_mutex;
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);
  if (iVar2 != 0) goto LAB_00018c44;
  pMVar10 = daemon->cleanup_tail;
joined_r0x0001892c:
  if (pMVar10 == (MHD_Connection *)0x0) {
    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);
    if (iVar2 == 0) {
      return;
    }
    uVar9 = 0xd5d;
    goto LAB_00018bf8;
  }
  if (pMVar10->prev == (MHD_Connection *)0x0) {
    daemon->cleanup_head = pMVar10->next;
    pMVar5 = pMVar10->next;
    pMVar8 = pMVar10->prev;
    if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;
LAB_00018958:
    pMVar5->prev = pMVar8;
  }
  else {
    pMVar10->prev->next = pMVar10->next;
    pMVar5 = pMVar10->next;
    pMVar8 = pMVar10->prev;
    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;
LAB_00018b14:
    daemon->cleanup_tail = pMVar8;
  }
  puVar1 = PTR_pthread_mutex_unlock_0003d280;
  pMVar10->next = (MHD_Connection *)0x0;
  pMVar10->prev = (MHD_Connection *)0x0;
  iVar2 = (*(code *)puVar1)(pMVar13);
  if (iVar2 != 0) goto LAB_00018bf4;
  if ((((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||
      (pMVar10->thread_joined != false)) ||
     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)) {
    puVar1 = PTR_free_0003d250;
    if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {
      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;
      (*(code *)puVar1)();
    }
    MHD_pool_destroy(pMVar10->pool);
    if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {
      (*daemon->notify_connection)
                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,
                 MHD_CONNECTION_NOTIFY_CLOSED);
    }
    MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);
    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {
      MVar3 = pMVar10->epoll_state;
      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {
        if (pMVar10->prevE == (MHD_Connection *)0x0) {
          daemon->eready_head = pMVar10->nextE;
        }
        else {
          pMVar10->prevE->nextE = pMVar10->nextE;
        }
        if (pMVar10->nextE == (MHD_Connection *)0x0) {
          daemon->eready_tail = pMVar10->prevE;
        }
        else {
          pMVar10->nextE->prevE = pMVar10->prevE;
        }
        pMVar10->nextE = (MHD_Connection *)0x0;
        pMVar10->prevE = (MHD_Connection *)0x0;
        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;
        pMVar10->epoll_state = MVar3;
      }
      if ((daemon->epoll_fd != -1) &&
         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,
         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;
    }
  }
  else {
    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;
    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,
               PTR_DAT_0003d02c + -0x4d40);
LAB_00018b58:
    iVar2 = (*pcVar14)();
    if (iVar2 != 0) {
      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;
      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;
      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);
      MVar12 = daemon_00->options;
      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);
      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {
        daemon_00->resuming = true;
        resume_suspended_connections(daemon_00);
      }
      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;
      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);
      uVar9 = 0x1a2b;
      if (iVar2 != 0) goto LAB_00019098;
      if (pMVar13 == (MHD_mutex_ *)0x0) {
        uVar9 = 0x1a58;
        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {
          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);
          goto LAB_000190c4;
        }
      }
      else {
        pMVar10 = daemon_00->suspended_connections_tail;
        if (pMVar10 != (MHD_Connection *)0x0) {
          pMVar6 = pMVar10->urh;
          iVar2 = *(int *)(pcVar14 + 0x243b0);
          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;
          while( true ) {
            if (pMVar6->was_closed == false) {
              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);
              pMVar10->urh->was_closed = true;
              pMVar10->resuming = true;
              daemon_00->resuming = true;
              pMVar10 = pMVar10->prev;
            }
            else {
              pMVar10->urh->was_closed = true;
              pMVar10->resuming = true;
              daemon_00->resuming = true;
              pMVar10 = pMVar10->prev;
            }
            if (pMVar10 == (MHD_Connection *)0x0) break;
            pMVar6 = pMVar10->urh;
            uVar9 = 0x1a37;
            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;
          }
        }
      }
      pMVar10 = daemon_00->connections_tail;
      pcVar15 = *(code **)(pcVar14 + 0x24604);
      if (pMVar10 != (MHD_Connection *)0x0) {
        do {
          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);
          pMVar10 = pMVar10->prev;
        } while (pMVar10 != (MHD_Connection *)0x0);
        pcVar15 = *(code **)(pcVar14 + 0x24604);
        pMVar10 = (MHD_Connection *)0x0;
        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {
          pMVar10 = daemon_00->connections_tail;
          while (pMVar10 != (MHD_Connection *)0x0) {
            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {
              pMVar10 = pMVar10->prev;
              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;
            }
            iVar2 = (*pcVar15)(pMVar11);
            if (iVar2 != 0) {
              uVar9 = 0x1a6f;
              goto LAB_00018f34;
            }
            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);
            if (iVar2 != 0) {
              uVar9 = 0x1a71;
LAB_00019070:
              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))
                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,
                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);
LAB_00019094:
              uVar9 = 0x1a72;
              goto LAB_00019098;
            }
            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);
            if (iVar2 != 0) goto LAB_00019094;
            pMVar10->thread_joined = true;
            pcVar15 = *(code **)(pcVar14 + 0x24604);
            pMVar10 = daemon_00->connections_tail;
          }
        }
      }
LAB_00018e1c:
      iVar2 = (*pcVar15)(pMVar11);
      uVar9 = 0x1a7c;
      if (iVar2 != 0) goto LAB_00018f34;
      if (pMVar13 != (MHD_mutex_ *)0x0) {
        daemon_00->resuming = true;
        resume_suspended_connections(daemon_00);
      }
LAB_00018e38:
      pMVar10 = daemon_00->connections_tail;
      while( true ) {
        if (pMVar10 == (MHD_Connection *)0x0) {
          MHD_cleanup_connections(daemon_00);
          return;
        }
        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&
           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;
        pMVar11 = pMVar10->daemon;
        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;
        MHD_connection_mark_closed_(pMVar10);
        pMVar10 = daemon_00->connections_tail;
      }
      pMVar13 = &pMVar11->cleanup_connection_mutex;
      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);
      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);
      if (iVar2 != 0) {
        do {
          uVar9 = 0x1274;
LAB_00019098:
          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))
                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,
                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);
LAB_000190c0:
          uVar9 = 0x1a37;
          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);
LAB_000190c4:
          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))
                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,
                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);
        } while( true );
      }
      pMVar5 = pMVar10->prevX;
      pMVar8 = pMVar10->nextX;
      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {
        if (pMVar5 == (MHD_Connection *)0x0) {
          pMVar11->normal_timeout_head = pMVar8;
        }
        else {
          pMVar5->nextX = pMVar8;
        }
        pMVar8 = pMVar10->nextX;
        pMVar5 = pMVar10->prevX;
        if (pMVar8 == (MHD_Connection *)0x0) {
          pMVar11->normal_timeout_tail = pMVar5;
          goto LAB_00018ecc;
        }
      }
      else {
        if (pMVar5 == (MHD_Connection *)0x0) {
          pMVar11->manual_timeout_head = pMVar8;
        }
        else {
          pMVar5->nextX = pMVar8;
        }
        pMVar8 = pMVar10->nextX;
        pMVar5 = pMVar10->prevX;
        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;
      }
      pMVar8->prevX = pMVar5;
LAB_00018ecc:
      pMVar5 = pMVar10->prev;
      pMVar8 = pMVar10->next;
      pMVar10->nextX = (MHD_Connection *)0x0;
      pMVar10->prevX = (MHD_Connection *)0x0;
      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;
LAB_00018ee0:
      pMVar5->next = pMVar8;
      pMVar5 = pMVar10->next;
      pMVar8 = pMVar10->prev;
      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;
LAB_00018ef0:
      pMVar5->prev = pMVar8;
      pMVar10->next = (MHD_Connection *)0x0;
      pMVar10->prev = (MHD_Connection *)0x0;
      pMVar10->next = pMVar11->cleanup_head;
      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;
      do {
        pMVar11->cleanup_head->prev = pMVar10;
        while( true ) {
          pcVar15 = *(code **)(pcVar14 + 0x24604);
          pMVar11->cleanup_head = pMVar10;
          iVar2 = (*pcVar15)(pMVar13);
          if (iVar2 == 0) goto LAB_00018e38;
          uVar9 = 0x1287;
LAB_00018f34:
          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))
                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,
                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);
          pMVar5 = extraout_v1;
LAB_00018f58:
          pMVar11->manual_timeout_tail = pMVar5;
          pMVar10->nextX = (MHD_Connection *)0x0;
          pMVar10->prevX = (MHD_Connection *)0x0;
          pMVar5 = pMVar10->prev;
          pMVar8 = pMVar10->next;
          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;
LAB_00018f70:
          pMVar11->connections_head = pMVar8;
          pMVar5 = pMVar10->next;
          pMVar8 = pMVar10->prev;
          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;
LAB_00018f80:
          pMVar11->connections_tail = pMVar8;
          pMVar10->next = (MHD_Connection *)0x0;
          pMVar10->prev = (MHD_Connection *)0x0;
          pMVar10->next = pMVar11->cleanup_head;
          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;
LAB_00018fa0:
          pMVar11->cleanup_tail = pMVar10;
        }
      } while( true );
    }
    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;
  }
  if (pMVar10->response != (MHD_Response *)0x0) {
    (*(code *)PTR_MHD_destroy_response_0003d234)();
    pMVar10->response = (MHD_Response *)0x0;
  }
  if (((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&
     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;
  if (pMVar10->addr != (sockaddr *)0x0) {
    (*(code *)PTR_free_0003d250)();
  }
  (*(code *)PTR_free_0003d250)(pMVar10);
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);
  if (iVar2 != 0) {
    uVar9 = 0xd57;
    do {
      (**(code **)PTR_mhd_panic_0003d03c)
                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,
                 PTR_DAT_0003d02c + -0x62c0);
LAB_00018bf4:
      uVar9 = 0xd18;
LAB_00018bf8:
      (**(code **)PTR_mhd_panic_0003d03c)
                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,
                 PTR_DAT_0003d02c + -0x6298);
LAB_00018c1c:
      (**(code **)PTR_mhd_panic_0003d03c)
                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,
                 PTR_DAT_0003d02c + -0x4cfc);
LAB_00018c44:
      uVar9 = 0xd10;
    } while( true );
  }
  pMVar10 = daemon->cleanup_tail;
  daemon->at_limit = false;
  daemon->connections = daemon->connections - 1;
  goto joined_r0x0001892c;
}



void FUN_000188d8(int param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int *piVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 extraout_v1;
  undefined4 uVar8;
  int *piVar9;
  int iVar10;
  uint uVar11;
  int iVar12;
  code *pcVar13;
  code *pcVar14;
  
  iVar10 = param_1 + 0xac;
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);
  if (iVar2 != 0) goto LAB_00018c44;
  piVar9 = *(int **)(param_1 + 0x1c);
joined_r0x0001892c:
  if (piVar9 == (int *)0x0) {
    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);
    if (iVar2 == 0) {
      return;
    }
    uVar8 = 0xd5d;
    goto LAB_00018bf8;
  }
  if (piVar9[3] == 0) {
    *(int *)(param_1 + 0x18) = piVar9[2];
    iVar2 = piVar9[2];
    iVar7 = piVar9[3];
    if (iVar2 == 0) goto LAB_00018b14;
LAB_00018958:
    *(int *)(iVar2 + 0xc) = iVar7;
  }
  else {
    *(int *)(piVar9[3] + 8) = piVar9[2];
    iVar2 = piVar9[2];
    iVar7 = piVar9[3];
    if (iVar2 != 0) goto LAB_00018958;
LAB_00018b14:
    *(int *)(param_1 + 0x1c) = iVar7;
  }
  puVar1 = PTR_pthread_mutex_unlock_0003d280;
  piVar9[2] = 0;
  piVar9[3] = 0;
  iVar2 = (*(code *)puVar1)(iVar10);
  if (iVar2 != 0) goto LAB_00018bf4;
  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||
     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {
    puVar1 = PTR_free_0003d250;
    if (piVar9[0x37] != 0) {
      piVar9[0x37] = 0;
      (*(code *)puVar1)();
    }
    FUN_0001eb80(piVar9[10]);
    if (*(code **)(param_1 + 0x50) != (code *)0x0) {
      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);
    }
    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);
    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {
      uVar3 = piVar9[0x2c];
      if ((uVar3 & 4) != 0) {
        if ((int *)piVar9[1] == (int *)0x0) {
          *(int *)(param_1 + 0x20) = *piVar9;
        }
        else {
          *(int *)piVar9[1] = *piVar9;
        }
        if (*piVar9 == 0) {
          *(int *)(param_1 + 0x24) = piVar9[1];
        }
        else {
          *(int *)(*piVar9 + 4) = piVar9[1];
        }
        *piVar9 = 0;
        piVar9[1] = 0;
        uVar3 = piVar9[0x2c] & 0xfffffffb;
        piVar9[0x2c] = uVar3;
      }
      if ((*(int *)(param_1 + 0xd0) != -1) &&
         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;
    }
  }
  else {
    pcVar13 = *(code **)PTR_DAT_0003d03c;
    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,
               PTR_DAT_0003d02c + -0x4d40);
LAB_00018b58:
    iVar2 = (*pcVar13)();
    if (iVar2 != 0) {
      iVar2 = *(int *)PTR_DAT_0003d038;
      pcVar13 = *(code **)PTR_DAT_0003d03c;
      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);
      uVar3 = *(uint *)(iVar2 + 0xf4);
      uVar11 = uVar3 & 0x8000;
      if ((uVar3 & 0x2000) != 0) {
        *(undefined1 *)(iVar2 + 0xdf) = 1;
        FUN_00017778();
      }
      iVar7 = iVar2 + 0xac;
      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);
      uVar8 = 0x1a2b;
      if (iVar10 != 0) goto LAB_00019098;
      if (uVar11 == 0) {
        uVar8 = 0x1a58;
        if (*(int *)(iVar2 + 0x10) != 0) {
          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);
          goto LAB_000190c4;
        }
      }
      else {
        iVar10 = *(int *)(iVar2 + 0x14);
        if (iVar10 != 0) {
          iVar5 = *(int *)(iVar10 + 0xdc);
          iVar12 = *(int *)(pcVar13 + 0x243b0);
          if (iVar5 == 0) goto LAB_000190c0;
          while( true ) {
            if (*(char *)(iVar5 + 4) == '\0') {
              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);
              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;
              *(undefined1 *)(iVar10 + 0xe8) = 1;
              *(undefined1 *)(iVar2 + 0xdf) = 1;
              iVar10 = *(int *)(iVar10 + 0xc);
            }
            else {
              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;
              *(undefined1 *)(iVar10 + 0xe8) = 1;
              *(undefined1 *)(iVar2 + 0xdf) = 1;
              iVar10 = *(int *)(iVar10 + 0xc);
            }
            if (iVar10 == 0) break;
            iVar5 = *(int *)(iVar10 + 0xdc);
            uVar8 = 0x1a37;
            if (iVar5 == 0) goto LAB_000190c0;
          }
        }
      }
      iVar10 = *(int *)(iVar2 + 0xc);
      pcVar14 = *(code **)(pcVar13 + 0x24604);
      if (iVar10 != 0) {
        do {
          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);
          iVar10 = *(int *)(iVar10 + 0xc);
        } while (iVar10 != 0);
        pcVar14 = *(code **)(pcVar13 + 0x24604);
        iVar10 = 0;
        if ((uVar3 & 4) != 0) {
          iVar10 = *(int *)(iVar2 + 0xc);
          while (iVar10 != 0) {
            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {
              iVar10 = *(int *)(iVar10 + 0xc);
              if (iVar10 == 0) goto LAB_00018e1c;
            }
            iVar5 = (*pcVar14)(iVar7);
            if (iVar5 != 0) {
              uVar8 = 0x1a6f;
              goto LAB_00018f34;
            }
            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);
            if (iVar5 != 0) {
              uVar8 = 0x1a71;
LAB_00019070:
              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,
                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);
LAB_00019094:
              uVar8 = 0x1a72;
              goto LAB_00019098;
            }
            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);
            if (iVar5 != 0) goto LAB_00019094;
            *(undefined1 *)(iVar10 + 0xab) = 1;
            pcVar14 = *(code **)(pcVar13 + 0x24604);
            iVar10 = *(int *)(iVar2 + 0xc);
          }
        }
      }
LAB_00018e1c:
      iVar5 = (*pcVar14)(iVar7);
      uVar8 = 0x1a7c;
      if (iVar5 != 0) goto LAB_00018f34;
      if (uVar11 != 0) {
        *(undefined1 *)(iVar2 + 0xdf) = 1;
        FUN_00017778(iVar2);
      }
LAB_00018e38:
      iVar10 = *(int *)(iVar2 + 0xc);
      while( true ) {
        if (iVar10 == 0) {
          FUN_000188d8(iVar2);
          return;
        }
        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&
           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;
        iVar7 = *(int *)(iVar10 + 0x18);
        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;
        FUN_00013f40(iVar10);
        iVar10 = *(int *)(iVar2 + 0xc);
      }
      uVar11 = iVar7 + 0xac;
      FUN_00013f84(iVar10,3);
      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);
      if (iVar5 != 0) {
        do {
          uVar8 = 0x1274;
LAB_00019098:
          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,
                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);
LAB_000190c0:
          uVar8 = 0x1a37;
          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);
LAB_000190c4:
          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,
                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);
        } while( true );
      }
      iVar5 = *(int *)(iVar10 + 0x14);
      uVar8 = *(undefined4 *)(iVar10 + 0x10);
      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {
        if (iVar5 == 0) {
          *(undefined4 *)(iVar7 + 0x30) = uVar8;
        }
        else {
          *(undefined4 *)(iVar5 + 0x10) = uVar8;
        }
        iVar5 = *(int *)(iVar10 + 0x10);
        uVar8 = *(undefined4 *)(iVar10 + 0x14);
        if (iVar5 == 0) {
          *(undefined4 *)(iVar7 + 0x34) = uVar8;
          goto LAB_00018ecc;
        }
      }
      else {
        if (iVar5 == 0) {
          *(undefined4 *)(iVar7 + 0x38) = uVar8;
        }
        else {
          *(undefined4 *)(iVar5 + 0x10) = uVar8;
        }
        iVar5 = *(int *)(iVar10 + 0x10);
        uVar8 = *(undefined4 *)(iVar10 + 0x14);
        if (iVar5 == 0) goto LAB_00018f58;
      }
      *(undefined4 *)(iVar5 + 0x14) = uVar8;
LAB_00018ecc:
      iVar5 = *(int *)(iVar10 + 0xc);
      uVar8 = *(undefined4 *)(iVar10 + 8);
      *(undefined4 *)(iVar10 + 0x10) = 0;
      *(undefined4 *)(iVar10 + 0x14) = 0;
      if (iVar5 == 0) goto LAB_00018f70;
LAB_00018ee0:
      *(undefined4 *)(iVar5 + 8) = uVar8;
      iVar5 = *(int *)(iVar10 + 8);
      uVar8 = *(undefined4 *)(iVar10 + 0xc);
      if (iVar5 == 0) goto LAB_00018f80;
LAB_00018ef0:
      *(undefined4 *)(iVar5 + 0xc) = uVar8;
      *(undefined4 *)(iVar10 + 8) = 0;
      *(undefined4 *)(iVar10 + 0xc) = 0;
      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);
      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;
      do {
        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;
        while( true ) {
          pcVar14 = *(code **)(pcVar13 + 0x24604);
          *(int *)(iVar7 + 0x18) = iVar10;
          iVar5 = (*pcVar14)(uVar11);
          if (iVar5 == 0) goto LAB_00018e38;
          uVar8 = 0x1287;
LAB_00018f34:
          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,
                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);
          uVar8 = extraout_v1;
LAB_00018f58:
          *(undefined4 *)(iVar7 + 0x3c) = uVar8;
          *(undefined4 *)(iVar10 + 0x10) = 0;
          *(undefined4 *)(iVar10 + 0x14) = 0;
          iVar5 = *(int *)(iVar10 + 0xc);
          uVar8 = *(undefined4 *)(iVar10 + 8);
          if (iVar5 != 0) goto LAB_00018ee0;
LAB_00018f70:
          *(undefined4 *)(iVar7 + 8) = uVar8;
          iVar5 = *(int *)(iVar10 + 8);
          uVar8 = *(undefined4 *)(iVar10 + 0xc);
          if (iVar5 != 0) goto LAB_00018ef0;
LAB_00018f80:
          *(undefined4 *)(iVar7 + 0xc) = uVar8;
          *(undefined4 *)(iVar10 + 8) = 0;
          *(undefined4 *)(iVar10 + 0xc) = 0;
          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);
          if (*(int *)(iVar7 + 0x1c) != 0) break;
LAB_00018fa0:
          *(int *)(iVar7 + 0x1c) = iVar10;
        }
      } while( true );
    }
    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;
  }
  if (piVar9[9] != 0) {
    (*(code *)PTR_MHD_destroy_response_0003d234)();
    piVar9[9] = 0;
  }
  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&
     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;
  if (piVar9[0x15] != 0) {
    (*(code *)PTR_free_0003d250)();
  }
  (*(code *)PTR_free_0003d250)(piVar9);
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);
  if (iVar2 != 0) {
    uVar8 = 0xd57;
    do {
      (**(code **)PTR_DAT_0003d03c)
                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,
                 PTR_DAT_0003d02c + -0x62c0);
LAB_00018bf4:
      uVar8 = 0xd18;
LAB_00018bf8:
      (**(code **)PTR_DAT_0003d03c)
                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,
                 PTR_DAT_0003d02c + -0x6298);
LAB_00018c1c:
      (**(code **)PTR_DAT_0003d03c)
                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,
                 PTR_DAT_0003d02c + -0x4cfc);
LAB_00018c44:
      uVar8 = 0xd10;
    } while( true );
  }
  piVar9 = *(int **)(param_1 + 0x1c);
  *(undefined1 *)(param_1 + 0xde) = 0;
  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;
  goto joined_r0x0001892c;
}


lui gp,0x3
addiu gp,gp,-0x38d8
addu gp,gp,t9
addiu sp,sp,-0x38
lw t9,-0x7df0(gp)
sw s2,0x20(sp)
addiu s2,a0,0xac
sw gp,0x10(sp)
sw s1,0x1c(sp)
or s1,a0,zero
sw ra,0x34(sp)
or a0,s2,zero
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
jalr t9
_sw s0,0x18(sp)
bne v0,zero,0x00018c44
_lw gp,0x10(sp)
lw s0,0x1c(s1)
beq s0,zero,0x00018b90
_lw s4,-0x7fac(gp)
li s3,-0x1
li s6,-0x9
li s5,-0x5
b 0x00018af8
_addiu s4,s4,-0x78e4
sw v1,0x8(v0)
lw v0,0x8(s0)
beq v0,zero,0x00018b14
_lw v1,0xc(s0)
sw v1,0xc(v0)
lw t9,-0x7d80(gp)
or a0,s2,zero
sw zero,0x8(s0)
jalr t9
_sw zero,0xc(s0)
bne v0,zero,0x00018bf4
_lw gp,0x10(sp)
lw v0,0xf4(s1)
andi v0,v0,0x4
beq v0,zero,0x00018994
_nop
lbu v0,0xab(s0)
beq v0,zero,0x00018b1c
_lw t9,-0x7ea0(gp)
lw a0,0xdc(s0)
beq a0,zero,0x000189ac
_lw t9,-0x7db0(gp)
jalr t9
_sw zero,0xdc(s0)
lw gp,0x10(sp)
lw t9,-0x7fa8(gp)
bal 0x0001eb80
_lw a0,0x28(s0)
lw t9,0x50(s1)
beq t9,zero,0x000189d4
_li a3,0x1
lw a0,0x54(s1)
addiu a2,s0,0x30
jalr t9
_or a1,s0,zero
lw a2,0x90(s0)
or a0,s1,zero
or t9,s4,zero
bal 0x0001871c
_lw a1,0x54(s0)
lw v0,0xf4(s1)
andi v0,v0,0x200
beq v0,zero,0x00018a50
_lw gp,0x10(sp)
lw v0,0xb0(s0)
andi v1,v0,0x4
beq v1,zero,0x00018a3c
_nop
lw v0,0x4(s0)
beq v0,zero,0x00018b88
_lw v1,0x0(s0)
sw v1,0x0(v0)
lw v0,0x0(s0)
beq v0,zero,0x00018b80
_lw v1,0x4(s0)
sw v1,0x4(v0)
lw v0,0xb0(s0)
sw zero,0x0(s0)
sw zero,0x4(s0)
and v0,v0,s5
sw v0,0xb0(s0)
lw a0,0xd0(s1)
beq a0,s3,0x00018a50
_andi v0,v0,0x8
bne v0,zero,0x00018b58
_lw t9,-0x7e08(gp)
lw a0,0x24(s0)
beq a0,zero,0x00018a6c
_lw t9,-0x7dcc(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw zero,0x24(s0)
lw a0,0xa4(s0)
beq a0,s3,0x00018aa4
_lw t9,-0x7ed8(gp)
jalr t9
_nop
beq v0,zero,0x00018aa4
_lw gp,0x10(sp)
lw t9,-0x7e68(gp)
jalr t9
_nop
li v1,0x9
lw v0,0x0(v0)
beq v0,v1,0x00018c1c
_lw gp,0x10(sp)
lw a0,0x54(s0)
beq a0,zero,0x00018abc
_lw t9,-0x7db0(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw t9,-0x7db0(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x7df0(gp)
jalr t9
_or a0,s2,zero
bne v0,zero,0x00018bcc
_lw gp,0x10(sp)
lw v0,0xe4(s1)
lw s0,0x1c(s1)
sb zero,0xde(s1)
addiu v0,v0,-0x1
beq s0,zero,0x00018b90
_sw v0,0xe4(s1)
lw v0,0xc(s0)
bne v0,zero,0x00018948
_lw v1,0x8(s0)
sw v1,0x18(s1)
lw v0,0x8(s0)
bne v0,zero,0x00018958
_lw v1,0xc(s0)
b 0x0001895c
_sw v1,0x1c(s1)
or a1,zero,zero
jalr t9
_lw a0,0x58(s0)
beq v0,zero,0x00018994
_lw gp,0x10(sp)
lw v0,-0x7fc8(gp)
li a2,0xd1c
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x4d40
lw v0,-0x7fc4(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51b0
or a3,zero,zero
lw a2,0xa4(s0)
jalr t9
_li a1,0x2
bne v0,zero,0x00018c54
_lw gp,0x10(sp)
lw v0,0xb0(s0)
and v0,v0,s6
b 0x00018a50
_sw v0,0xb0(s0)
b 0x00018a28
_sw v1,0x24(s1)
b 0x00018a18
_sw v1,0x20(s1)
lw t9,-0x7d80(gp)
jalr t9
_or a0,s2,zero
bne v0,zero,0x00018c4c
_lw gp,0x10(sp)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
li a2,0xd57
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x62c0
lw v0,-0x7fc4(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51b0
li a2,0xd18
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x6298
lw v0,-0x7fc4(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51b0
lw v0,-0x7fc8(gp)
li a2,0xd51
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x4cfc
lw v0,-0x7fc4(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51b0
b 0x00018bd0
_li a2,0xd10
b 0x00018bf8
_li a2,0xd5d
lw v0,-0x7fc8(gp)
li a2,0xd46
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x4d24
lw v0,-0x7fc4(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51b0
(translation_unit "void FUN_000188d8(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}\n\n" (function_definition "void FUN_000188d8(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}" primitive_type (function_declarator "FUN_000188d8(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (expression_statement "iVar10 = param_1 + 0xac;" (assignment_expression "iVar10 = param_1 + 0xac" identifier = (binary_expression "param_1 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00018c44;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018c44;" goto statement_identifier ;)) (expression_statement "piVar9 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar9 = *(int **)(param_1 + 0x1c)" identifier = (pointer_expression "*(int **)(param_1 + 0x1c)" * (cast_expression "(int **)(param_1 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" statement_identifier : (if_statement "if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" { (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003d280" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003d280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar8 = 0xd5d;" (assignment_expression "uVar8 = 0xd5d" identifier = number_literal) ;) (goto_statement "goto LAB_00018bf8;" goto statement_identifier ;) }))) (if_statement "if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" if (parenthesized_expression "(piVar9[3] == 0)" ( (binary_expression "piVar9[3] == 0" (subscript_expression "piVar9[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }" { (expression_statement "*(int *)(param_1 + 0x18) = piVar9[2];" (assignment_expression "*(int *)(param_1 + 0x18) = piVar9[2]" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar9[2];" (assignment_expression "iVar2 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar9[3];" (assignment_expression "iVar7 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) goto LAB_00018b14;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018b14;" goto statement_identifier ;)) (labeled_statement "LAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;" statement_identifier : (expression_statement "*(int *)(iVar2 + 0xc) = iVar7;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" else (compound_statement "{\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" { (expression_statement "*(int *)(piVar9[3] + 8) = piVar9[2];" (assignment_expression "*(int *)(piVar9[3] + 8) = piVar9[2]" (pointer_expression "*(int *)(piVar9[3] + 8)" * (cast_expression "(int *)(piVar9[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9[3] + 8)" ( (binary_expression "piVar9[3] + 8" (subscript_expression "piVar9[3]" identifier [ number_literal ]) + number_literal) )))) = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar9[2];" (assignment_expression "iVar2 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar9[3];" (assignment_expression "iVar7 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) goto LAB_00018958;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018958;" goto statement_identifier ;)) (labeled_statement "LAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x1c) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x1c) = iVar7" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;)) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003d280;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003d280" identifier = identifier) ;) (expression_statement "piVar9[2] = 0;" (assignment_expression "piVar9[2] = 0" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9[3] = 0;" (assignment_expression "piVar9[3] = 0" (subscript_expression "piVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar1)(iVar10);" (assignment_expression "iVar2 = (*(code *)puVar1)(iVar10)" identifier = (call_expression "(*(code *)puVar1)(iVar10)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00018bf4;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018bf4;" goto statement_identifier ;)) (if_statement "if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" if (parenthesized_expression "((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0))" ( (binary_expression "(((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)" (parenthesized_expression "(((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0'))" ( (binary_expression "((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')" (parenthesized_expression "((*(uint *)(param_1 + 0xf4) & 4) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf4) & 4) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf4) & 4)" ( (binary_expression "*(uint *)(param_1 + 0xf4) & 4" (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar9 + 0xab) != '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0xab) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0xab)" * (cast_expression "(char *)((int)piVar9 + 0xab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0xab)" ( (binary_expression "(int)piVar9 + 0xab" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)" ( (comma_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0" (assignment_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0)" identifier = (call_expression "(*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0)" (parenthesized_expression "(*(code *)PTR_pthread_join_0003d160)" ( (pointer_expression "*(code *)PTR_pthread_join_0003d160" * (cast_expression "(code *)PTR_pthread_join_0003d160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9[0x16],0)" ( (subscript_expression "piVar9[0x16]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }" { (expression_statement "puVar1 = PTR_free_0003d250;" (assignment_expression "puVar1 = PTR_free_0003d250" identifier = identifier) ;) (if_statement "if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }" if (parenthesized_expression "(piVar9[0x37] != 0)" ( (binary_expression "piVar9[0x37] != 0" (subscript_expression "piVar9[0x37]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }" { (expression_statement "piVar9[0x37] = 0;" (assignment_expression "piVar9[0x37] = 0" (subscript_expression "piVar9[0x37]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0001eb80(piVar9[10]);" (call_expression "FUN_0001eb80(piVar9[10])" identifier (argument_list "(piVar9[10])" ( (subscript_expression "piVar9[10]" identifier [ number_literal ]) ))) ;) (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }" if (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }" { (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "piVar9 + 0xc" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);" (call_expression "FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24])" identifier (argument_list "(param_1,piVar9[0x15],piVar9[0x24])" ( identifier , (subscript_expression "piVar9[0x15]" identifier [ number_literal ]) , (subscript_expression "piVar9[0x24]" identifier [ number_literal ]) ))) ;) (if_statement "if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0xf4) & 0x200) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf4) & 0x200) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf4) & 0x200)" ( (binary_expression "*(uint *)(param_1 + 0xf4) & 0x200" (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }" { (expression_statement "uVar3 = piVar9[0x2c];" (assignment_expression "uVar3 = piVar9[0x2c]" identifier = (subscript_expression "piVar9[0x2c]" identifier [ number_literal ])) ;) (if_statement "if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }" { (if_statement "if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }" if (parenthesized_expression "((int *)piVar9[1] == (int *)0x0)" ( (binary_expression "(int *)piVar9[1] == (int *)0x0" (cast_expression "(int *)piVar9[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }" { (expression_statement "*(int *)(param_1 + 0x20) = *piVar9;" (assignment_expression "*(int *)(param_1 + 0x20) = *piVar9" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          *(int *)piVar9[1] = *piVar9;\n        }" else (compound_statement "{\n          *(int *)piVar9[1] = *piVar9;\n        }" { (expression_statement "*(int *)piVar9[1] = *piVar9;" (assignment_expression "*(int *)piVar9[1] = *piVar9" (pointer_expression "*(int *)piVar9[1]" * (cast_expression "(int *)piVar9[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) = (pointer_expression "*piVar9" * identifier)) ;) }))) (if_statement "if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" if (parenthesized_expression "(*piVar9 == 0)" ( (binary_expression "*piVar9 == 0" (pointer_expression "*piVar9" * identifier) == number_literal) )) (compound_statement "{\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }" { (expression_statement "*(int *)(param_1 + 0x24) = piVar9[1];" (assignment_expression "*(int *)(param_1 + 0x24) = piVar9[1]" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" else (compound_statement "{\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" { (expression_statement "*(int *)(*piVar9 + 4) = piVar9[1];" (assignment_expression "*(int *)(*piVar9 + 4) = piVar9[1]" (pointer_expression "*(int *)(*piVar9 + 4)" * (cast_expression "(int *)(*piVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 4)" ( (binary_expression "*piVar9 + 4" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) }))) (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = piVar9[0x2c] & 0xfffffffb;" (assignment_expression "uVar3 = piVar9[0x2c] & 0xfffffffb" identifier = (binary_expression "piVar9[0x2c] & 0xfffffffb" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "piVar9[0x2c] = uVar3;" (assignment_expression "piVar9[0x2c] = uVar3" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;" if (parenthesized_expression "((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xd0) != -1)" ( (binary_expression "*(int *)(param_1 + 0xd0) != -1" (pointer_expression "*(int *)(param_1 + 0xd0)" * (cast_expression "(int *)(param_1 + 0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)" ( (comma_expression "pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0" (assignment_expression "pcVar13 = (code *)PTR_epoll_ctl_0003d1f8" identifier = (cast_expression "(code *)PTR_epoll_ctl_0003d1f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(uVar3 & 8) != 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_00018b58;" goto statement_identifier ;)) })) }) (else_clause "else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" else (compound_statement "{\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" { (expression_statement "pcVar13 = *(code **)PTR_DAT_0003d03c;" (assignment_expression "pcVar13 = *(code **)PTR_DAT_0003d03c" identifier = (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);" (call_expression "(*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4d40" identifier + number_literal) ))) ;) (labeled_statement "LAB_00018b58:\n    iVar2 = (*pcVar13)();" statement_identifier : (expression_statement "iVar2 = (*pcVar13)();" (assignment_expression "iVar2 = (*pcVar13)()" identifier = (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }" { (expression_statement "iVar2 = *(int *)PTR_DAT_0003d038;" (assignment_expression "iVar2 = *(int *)PTR_DAT_0003d038" identifier = (pointer_expression "*(int *)PTR_DAT_0003d038" * (cast_expression "(int *)PTR_DAT_0003d038" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar13 = *(code **)PTR_DAT_0003d03c;" (assignment_expression "pcVar13 = *(code **)PTR_DAT_0003d03c" identifier = (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);" (call_expression "(*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" ( identifier , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4d24" identifier + number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xf4);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xf4)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xf4)" * (cast_expression "(uint *)(iVar2 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf4)" ( (binary_expression "iVar2 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar3 & 0x8000;" (assignment_expression "uVar11 = uVar3 & 0x8000" identifier = (binary_expression "uVar3 & 0x8000" identifier & number_literal)) ;) (if_statement "if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }" if (parenthesized_expression "((uVar3 & 0x2000) != 0)" ( (binary_expression "(uVar3 & 0x2000) != 0" (parenthesized_expression "(uVar3 & 0x2000)" ( (binary_expression "uVar3 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }" { (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017778();" (call_expression "FUN_00017778()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = iVar2 + 0xac;" (assignment_expression "iVar7 = iVar2 + 0xac" identifier = (binary_expression "iVar2 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);" (assignment_expression "iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7)" identifier = (call_expression "(**(code **)(pcVar13 + 0x24594))(iVar7)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" ( (pointer_expression "**(code **)(pcVar13 + 0x24594)" * (pointer_expression "*(code **)(pcVar13 + 0x24594)" * (cast_expression "(code **)(pcVar13 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24594)" ( (binary_expression "pcVar13 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "uVar8 = 0x1a2b;" (assignment_expression "uVar8 = 0x1a2b" identifier = number_literal) ;) (if_statement "if (iVar10 != 0) goto LAB_00019098;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019098;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }" { (expression_statement "uVar8 = 0x1a58;" (assignment_expression "uVar8 = 0x1a58" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }" if (parenthesized_expression "(*(int *)(iVar2 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x10) != 0" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }" { (expression_statement "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc)" identifier = (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000190c4;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" else (compound_statement "{\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" { (expression_statement "iVar10 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }" { (expression_statement "iVar5 = *(int *)(iVar10 + 0xdc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xdc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar13 + 0x243b0);" (assignment_expression "iVar12 = *(int *)(pcVar13 + 0x243b0)" identifier = (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_000190c0;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000190c0;" goto statement_identifier ;)) (while_statement "while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }" { (if_statement "if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" if (parenthesized_expression "(*(char *)(iVar5 + 4) == '\0')" ( (binary_expression "*(char *)(iVar5 + 4) == '\0'" (pointer_expression "*(char *)(iVar5 + 4)" * (cast_expression "(char *)(iVar5 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" { (expression_statement "FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);" (call_expression "FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8)" identifier (argument_list "(iVar2,iVar12 + -0x4ca4,uVar8)" ( identifier , (binary_expression "iVar12 + -0x4ca4" identifier + number_literal) , identifier ))) ;) (expression_statement "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" * (cast_expression "(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xdc) + 4)" ( (binary_expression "*(int *)(iVar10 + 0xdc) + 4" (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar10 + 0xe8) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xe8) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xe8)" * (cast_expression "(undefined1 *)(iVar10 + 0xe8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" else (compound_statement "{\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" { (expression_statement "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" * (cast_expression "(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xdc) + 4)" ( (binary_expression "*(int *)(iVar10 + 0xdc) + 4" (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar10 + 0xe8) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xe8) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xe8)" * (cast_expression "(undefined1 *)(iVar10 + 0xe8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = *(int *)(iVar10 + 0xdc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xdc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0x1a37;" (assignment_expression "uVar8 = 0x1a37" identifier = number_literal) ;) (if_statement "if (iVar5 == 0) goto LAB_000190c0;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000190c0;" goto statement_identifier ;)) })) })) }))) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }" { (do_statement "do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);" do (compound_statement "{\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        }" { (expression_statement "(**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);" (call_expression "(**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2)" (parenthesized_expression "(**(code **)(pcVar13 + 0x244b8))" ( (pointer_expression "**(code **)(pcVar13 + 0x244b8)" * (pointer_expression "*(code **)(pcVar13 + 0x244b8)" * (cast_expression "(code **)(pcVar13 + 0x244b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x244b8)" ( (binary_expression "pcVar13 + 0x244b8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar10 + 0xa4),2)" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xa4)" * (cast_expression "(undefined4 *)(iVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xa4)" ( (binary_expression "iVar10 + 0xa4" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }" { (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }" while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }" { (while_statement "while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }" while (parenthesized_expression "(pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0')" ( (comma_expression "pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0'" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) , (binary_expression "*(char *)(iVar10 + 0xab) != '\0'" (pointer_expression "*(char *)(iVar10 + 0xab)" * (cast_expression "(char *)(iVar10 + 0xab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xab)" ( (binary_expression "iVar10 + 0xab" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }" { (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_00018e1c;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e1c;" goto statement_identifier ;)) })) (expression_statement "iVar5 = (*pcVar14)(iVar7);" (assignment_expression "iVar5 = (*pcVar14)(iVar7)" identifier = (call_expression "(*pcVar14)(iVar7)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }" { (expression_statement "uVar8 = 0x1a6f;" (assignment_expression "uVar8 = 0x1a6f" identifier = number_literal) ;) (goto_statement "goto LAB_00018f34;" goto statement_identifier ;) })) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0)" identifier = (call_expression "(**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0)" (parenthesized_expression "(**(code **)(pcVar13 + 0x244e4))" ( (pointer_expression "**(code **)(pcVar13 + 0x244e4)" * (pointer_expression "*(code **)(pcVar13 + 0x244e4)" * (cast_expression "(code **)(pcVar13 + 0x244e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x244e4)" ( (binary_expression "pcVar13 + 0x244e4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar10 + 0x58),0)" ( (pointer_expression "*(undefined4 *)(iVar10 + 0x58)" * (cast_expression "(undefined4 *)(iVar10 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }" { (expression_statement "uVar8 = 0x1a71;" (assignment_expression "uVar8 = 0x1a71" identifier = number_literal) ;) (labeled_statement "LAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40)" ( (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x4d40" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_00019094:\n              uVar8 = 0x1a72;" statement_identifier : (expression_statement "uVar8 = 0x1a72;" (assignment_expression "uVar8 = 0x1a72" identifier = number_literal) ;)) (goto_statement "goto LAB_00019098;" goto statement_identifier ;) })) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7)" identifier = (call_expression "(**(code **)(pcVar13 + 0x24594))(iVar7)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" ( (pointer_expression "**(code **)(pcVar13 + 0x24594)" * (pointer_expression "*(code **)(pcVar13 + 0x24594)" * (cast_expression "(code **)(pcVar13 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24594)" ( (binary_expression "pcVar13 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) goto LAB_00019094;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019094;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(iVar10 + 0xab) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xab) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xab)" * (cast_expression "(undefined1 *)(iVar10 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xab)" ( (binary_expression "iVar10 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) })) })) })) (labeled_statement "LAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);" statement_identifier : (expression_statement "iVar5 = (*pcVar14)(iVar7);" (assignment_expression "iVar5 = (*pcVar14)(iVar7)" identifier = (call_expression "(*pcVar14)(iVar7)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar7)" ( identifier )))) ;)) (expression_statement "uVar8 = 0x1a7c;" (assignment_expression "uVar8 = 0x1a7c" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) goto LAB_00018f34;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018f34;" goto statement_identifier ;)) (if_statement "if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }" { (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017778(iVar2);" (call_expression "FUN_00017778(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (labeled_statement "LAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);" statement_identifier : (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;)) (while_statement "while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }" { (if_statement "if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_000188d8(iVar2);\n          return;\n        }" { (expression_statement "FUN_000188d8(iVar2);" (call_expression "FUN_000188d8(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;" if (parenthesized_expression "(((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0'))" ( (binary_expression "((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')" (parenthesized_expression "((*(uint *)(iVar2 + 0xf4) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar2 + 0xf4) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar2 + 0xf4) & 4)" ( (binary_expression "*(uint *)(iVar2 + 0xf4) & 4" (pointer_expression "*(uint *)(iVar2 + 0xf4)" * (cast_expression "(uint *)(iVar2 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf4)" ( (binary_expression "iVar2 + 0xf4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')" ( (comma_expression "uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0'" (assignment_expression "uVar8 = 0x1a91" identifier = number_literal) , (binary_expression "*(char *)(iVar10 + 0xab) == '\0'" (pointer_expression "*(char *)(iVar10 + 0xab)" * (cast_expression "(char *)(iVar10 + 0xab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xab)" ( (binary_expression "iVar10 + 0xab" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00019070;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(iVar10 + 0x18);" (assignment_expression "iVar7 = *(int *)(iVar10 + 0x18)" identifier = (pointer_expression "*(int *)(iVar10 + 0x18)" * (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;" if (parenthesized_expression "((*(uint *)(iVar7 + 0xf4) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar7 + 0xf4) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar7 + 0xf4) & 4)" ( (binary_expression "*(uint *)(iVar7 + 0xf4) & 4" (pointer_expression "*(uint *)(iVar7 + 0xf4)" * (cast_expression "(uint *)(iVar7 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf4)" ( (binary_expression "iVar7 + 0xf4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00013f40(iVar10);" (call_expression "FUN_00013f40(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "uVar11 = iVar7 + 0xac;" (assignment_expression "uVar11 = iVar7 + 0xac" identifier = (binary_expression "iVar7 + 0xac" identifier + number_literal)) ;) (expression_statement "FUN_00013f84(iVar10,3);" (call_expression "FUN_00013f84(iVar10,3)" identifier (argument_list "(iVar10,3)" ( identifier , number_literal ))) ;) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11)" identifier = (call_expression "(**(code **)(pcVar13 + 0x24594))(uVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" ( (pointer_expression "**(code **)(pcVar13 + 0x24594)" * (pointer_expression "*(code **)(pcVar13 + 0x24594)" * (cast_expression "(code **)(pcVar13 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24594)" ( (binary_expression "pcVar13 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(uVar11)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" { (do_statement "do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );" do (compound_statement "{\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        }" { (expression_statement "uVar8 = 0x1274;" (assignment_expression "uVar8 = 0x1274" identifier = number_literal) ;) (labeled_statement "LAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0)" ( (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x62c0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_000190c0:\n          uVar8 = 0x1a37;" statement_identifier : (expression_statement "uVar8 = 0x1a37;" (assignment_expression "uVar8 = 0x1a37" identifier = number_literal) ;)) (expression_statement "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc)" identifier = (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4)" ( (pointer_expression "*puVar6" * identifier) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x4ce4" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar5 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x14)" identifier = (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x10);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" * (cast_expression "(undefined4 *)(iVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" if (parenthesized_expression "(*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec))" ( (binary_expression "*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)" (pointer_expression "*(int *)(iVar10 + 0x98)" * (cast_expression "(int *)(iVar10 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x98)" ( (binary_expression "iVar10 + 0x98" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar7 + 0xec)" * (cast_expression "(int *)(iVar7 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xec)" ( (binary_expression "iVar7 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }" { (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar7 + 0x30) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar5 + 0x10) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x10)" identifier = (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }" { (expression_statement "*(undefined4 *)(iVar7 + 0x34) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x34) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x34)" * (cast_expression "(undefined4 *)(iVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00018ecc;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" else (compound_statement "{\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" { (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar7 + 0x38) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x38) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x38)" * (cast_expression "(undefined4 *)(iVar7 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar5 + 0x10) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x10)" identifier = (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00018f58;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f58;" goto statement_identifier ;)) }))) (expression_statement "*(undefined4 *)(iVar5 + 0x14) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x14) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" * (cast_expression "(undefined4 *)(iVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar5 == 0) goto LAB_00018f70;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f70;" goto statement_identifier ;)) (labeled_statement "LAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar5 + 8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 8) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00018f80;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f80;" goto statement_identifier ;)) (labeled_statement "LAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar5 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18)" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;" if (parenthesized_expression "(*(int *)(iVar7 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x1c) == 0" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00018fa0;" goto statement_identifier ;)) (do_statement "do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );" do (compound_statement "{\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      }" { (expression_statement "*(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;" (assignment_expression "*(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10" (pointer_expression "*(int *)(*(int *)(iVar7 + 0x18) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar7 + 0x18) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 0x18) + 0xc)" ( (binary_expression "*(int *)(iVar7 + 0x18) + 0xc" (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (while_statement "while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }" { (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar7 + 0x18) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x18) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = (*pcVar14)(uVar11);" (assignment_expression "iVar5 = (*pcVar14)(uVar11)" identifier = (call_expression "(*pcVar14)(uVar11)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(uVar11)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00018e38;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e38;" goto statement_identifier ;)) (expression_statement "uVar8 = 0x1287;" (assignment_expression "uVar8 = 0x1287" identifier = number_literal) ;) (labeled_statement "LAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298)" ( (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x6298" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uVar8 = extraout_v1;" (assignment_expression "uVar8 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar7 + 0x3c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x3c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x3c)" * (cast_expression "(undefined4 *)(iVar7 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(iVar10 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" * (cast_expression "(undefined4 *)(iVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) goto LAB_00018ee0;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018ee0;" goto statement_identifier ;)) (labeled_statement "LAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar7 + 8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) goto LAB_00018ef0;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018ef0;" goto statement_identifier ;)) (labeled_statement "LAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18)" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar7 + 0x1c) != 0) break;" if (parenthesized_expression "(*(int *)(iVar7 + 0x1c) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x1c) != 0" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;" statement_identifier : (expression_statement "*(int *)(iVar7 + 0x1c) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x1c) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;" (assignment_expression "piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) = (binary_expression "piVar9[0x2c] & 0xfffffff7" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) & number_literal)) ;) }))) (if_statement "if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }" if (parenthesized_expression "(piVar9[9] != 0)" ( (binary_expression "piVar9[9] != 0" (subscript_expression "piVar9[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }" { (expression_statement "(*(code *)PTR_MHD_destroy_response_0003d234)();" (call_expression "(*(code *)PTR_MHD_destroy_response_0003d234)()" (parenthesized_expression "(*(code *)PTR_MHD_destroy_response_0003d234)" ( (pointer_expression "*(code *)PTR_MHD_destroy_response_0003d234" * (cast_expression "(code *)PTR_MHD_destroy_response_0003d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar9[9] = 0;" (assignment_expression "piVar9[9] = 0" (subscript_expression "piVar9[9]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;" if (parenthesized_expression "(((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9))" ( (binary_expression "((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" (parenthesized_expression "((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0))" ( (binary_expression "(piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" (parenthesized_expression "(piVar9[0x29] != -1)" ( (binary_expression "piVar9[0x29] != -1" (subscript_expression "piVar9[0x29]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" ( (comma_expression "iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_close_0003d128)()" identifier = (call_expression "(*(code *)PTR_close_0003d128)()" (parenthesized_expression "(*(code *)PTR_close_0003d128)" ( (pointer_expression "*(code *)PTR_close_0003d128" * (cast_expression "(code *)PTR_close_0003d128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003d198)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003d198)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003d198)" ( (pointer_expression "*(code *)PTR___errno_location_0003d198" * (cast_expression "(code *)PTR___errno_location_0003d198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_00018c1c;" goto statement_identifier ;)) (if_statement "if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }" if (parenthesized_expression "(piVar9[0x15] != 0)" ( (binary_expression "piVar9[0x15] != 0" (subscript_expression "piVar9[0x15]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_0003d250)();\n  }" { (expression_statement "(*(code *)PTR_free_0003d250)();" (call_expression "(*(code *)PTR_free_0003d250)()" (parenthesized_expression "(*(code *)PTR_free_0003d250)" ( (pointer_expression "*(code *)PTR_free_0003d250" * (cast_expression "(code *)PTR_free_0003d250" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_free_0003d250)(piVar9);" (call_expression "(*(code *)PTR_free_0003d250)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_0003d250)" ( (pointer_expression "*(code *)PTR_free_0003d250" * (cast_expression "(code *)PTR_free_0003d250" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }" { (expression_statement "uVar8 = 0xd57;" (assignment_expression "uVar8 = 0xd57" identifier = number_literal) ;) (do_statement "do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );" do (compound_statement "{\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    }" { (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" ( (pointer_expression "**(code **)PTR_DAT_0003d03c" * (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003d02c + -0x62c0" identifier + number_literal) ))) ;) (labeled_statement "LAB_00018bf4:\n      uVar8 = 0xd18;" statement_identifier : (expression_statement "uVar8 = 0xd18;" (assignment_expression "uVar8 = 0xd18" identifier = number_literal) ;)) (labeled_statement "LAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" ( (pointer_expression "**(code **)PTR_DAT_0003d03c" * (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003d02c + -0x6298" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" ( (pointer_expression "**(code **)PTR_DAT_0003d03c" * (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4cfc" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00018c44:\n      uVar8 = 0xd10;" statement_identifier : (expression_statement "uVar8 = 0xd10;" (assignment_expression "uVar8 = 0xd10" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "piVar9 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar9 = *(int **)(param_1 + 0x1c)" identifier = (pointer_expression "*(int **)(param_1 + 0x1c)" * (cast_expression "(int **)(param_1 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0xde) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xde) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xde)" * (cast_expression "(undefined1 *)(param_1 + 0xde)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xde)" ( (binary_expression "param_1 + 0xde" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;" (assignment_expression "*(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1" (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0xe4) + -1" (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto joined_r0x0001892c;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n\nvoid MHD_cleanup_connections(MHD_Daemon *daemon)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  MHD_EpollState MVar3;\n  int *piVar4;\n  MHD_Connection *pMVar5;\n  MHD_UpgradeResponseHandle *pMVar6;\n  undefined4 *puVar7;\n  MHD_Connection *pMVar8;\n  MHD_Connection *extraout_v1;\n  MHD_Daemon *daemon_00;\n  undefined4 uVar9;\n  MHD_Connection *pMVar10;\n  MHD_Daemon *pMVar11;\n  MHD_FLAG MVar12;\n  MHD_mutex_ *pMVar13;\n  code *pcVar14;\n  code *pcVar15;\n  \n  pMVar13 = &daemon->cleanup_connection_mutex;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);\n  if (iVar2 != 0) goto LAB_00018c44;\n  pMVar10 = daemon->cleanup_tail;\njoined_r0x0001892c:\n  if (pMVar10 == (MHD_Connection *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar9 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (pMVar10->prev == (MHD_Connection *)0x0) {\n    daemon->cleanup_head = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;\nLAB_00018958:\n    pMVar5->prev = pMVar8;\n  }\n  else {\n    pMVar10->prev->next = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;\nLAB_00018b14:\n    daemon->cleanup_tail = pMVar8;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  pMVar10->next = (MHD_Connection *)0x0;\n  pMVar10->prev = (MHD_Connection *)0x0;\n  iVar2 = (*(code *)puVar1)(pMVar13);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }\n    MHD_pool_destroy(pMVar10->pool);\n    if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }\n    MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar14)();\n    if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }\n    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;\n  }\n  if (pMVar10->response != (MHD_Response *)0x0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    pMVar10->response = (MHD_Response *)0x0;\n  }\n  if (((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (pMVar10->addr != (sockaddr *)0x0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(pMVar10);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);\n  if (iVar2 != 0) {\n    uVar9 = 0xd57;\n    do {\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    } while( true );\n  }\n  pMVar10 = daemon->cleanup_tail;\n  daemon->at_limit = false;\n  daemon->connections = daemon->connections - 1;\n  goto joined_r0x0001892c;\n}\n\n" comment (function_definition "void MHD_cleanup_connections(MHD_Daemon *daemon)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  MHD_EpollState MVar3;\n  int *piVar4;\n  MHD_Connection *pMVar5;\n  MHD_UpgradeResponseHandle *pMVar6;\n  undefined4 *puVar7;\n  MHD_Connection *pMVar8;\n  MHD_Connection *extraout_v1;\n  MHD_Daemon *daemon_00;\n  undefined4 uVar9;\n  MHD_Connection *pMVar10;\n  MHD_Daemon *pMVar11;\n  MHD_FLAG MVar12;\n  MHD_mutex_ *pMVar13;\n  code *pcVar14;\n  code *pcVar15;\n  \n  pMVar13 = &daemon->cleanup_connection_mutex;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);\n  if (iVar2 != 0) goto LAB_00018c44;\n  pMVar10 = daemon->cleanup_tail;\njoined_r0x0001892c:\n  if (pMVar10 == (MHD_Connection *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar9 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (pMVar10->prev == (MHD_Connection *)0x0) {\n    daemon->cleanup_head = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;\nLAB_00018958:\n    pMVar5->prev = pMVar8;\n  }\n  else {\n    pMVar10->prev->next = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;\nLAB_00018b14:\n    daemon->cleanup_tail = pMVar8;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  pMVar10->next = (MHD_Connection *)0x0;\n  pMVar10->prev = (MHD_Connection *)0x0;\n  iVar2 = (*(code *)puVar1)(pMVar13);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }\n    MHD_pool_destroy(pMVar10->pool);\n    if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }\n    MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar14)();\n    if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }\n    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;\n  }\n  if (pMVar10->response != (MHD_Response *)0x0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    pMVar10->response = (MHD_Response *)0x0;\n  }\n  if (((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (pMVar10->addr != (sockaddr *)0x0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(pMVar10);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);\n  if (iVar2 != 0) {\n    uVar9 = 0xd57;\n    do {\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    } while( true );\n  }\n  pMVar10 = daemon->cleanup_tail;\n  daemon->at_limit = false;\n  daemon->connections = daemon->connections - 1;\n  goto joined_r0x0001892c;\n}" primitive_type (function_declarator "MHD_cleanup_connections(MHD_Daemon *daemon)" identifier (parameter_list "(MHD_Daemon *daemon)" ( (parameter_declaration "MHD_Daemon *daemon" type_identifier (pointer_declarator "*daemon" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  MHD_EpollState MVar3;\n  int *piVar4;\n  MHD_Connection *pMVar5;\n  MHD_UpgradeResponseHandle *pMVar6;\n  undefined4 *puVar7;\n  MHD_Connection *pMVar8;\n  MHD_Connection *extraout_v1;\n  MHD_Daemon *daemon_00;\n  undefined4 uVar9;\n  MHD_Connection *pMVar10;\n  MHD_Daemon *pMVar11;\n  MHD_FLAG MVar12;\n  MHD_mutex_ *pMVar13;\n  code *pcVar14;\n  code *pcVar15;\n  \n  pMVar13 = &daemon->cleanup_connection_mutex;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);\n  if (iVar2 != 0) goto LAB_00018c44;\n  pMVar10 = daemon->cleanup_tail;\njoined_r0x0001892c:\n  if (pMVar10 == (MHD_Connection *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar9 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (pMVar10->prev == (MHD_Connection *)0x0) {\n    daemon->cleanup_head = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;\nLAB_00018958:\n    pMVar5->prev = pMVar8;\n  }\n  else {\n    pMVar10->prev->next = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;\nLAB_00018b14:\n    daemon->cleanup_tail = pMVar8;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  pMVar10->next = (MHD_Connection *)0x0;\n  pMVar10->prev = (MHD_Connection *)0x0;\n  iVar2 = (*(code *)puVar1)(pMVar13);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }\n    MHD_pool_destroy(pMVar10->pool);\n    if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }\n    MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar14)();\n    if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }\n    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;\n  }\n  if (pMVar10->response != (MHD_Response *)0x0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    pMVar10->response = (MHD_Response *)0x0;\n  }\n  if (((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (pMVar10->addr != (sockaddr *)0x0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(pMVar10);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);\n  if (iVar2 != 0) {\n    uVar9 = 0xd57;\n    do {\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    } while( true );\n  }\n  pMVar10 = daemon->cleanup_tail;\n  daemon->at_limit = false;\n  daemon->connections = daemon->connections - 1;\n  goto joined_r0x0001892c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "MHD_EpollState MVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "MHD_Connection *pMVar5;" type_identifier (pointer_declarator "*pMVar5" * identifier) ;) (declaration "MHD_UpgradeResponseHandle *pMVar6;" type_identifier (pointer_declarator "*pMVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "MHD_Connection *pMVar8;" type_identifier (pointer_declarator "*pMVar8" * identifier) ;) (declaration "MHD_Connection *extraout_v1;" type_identifier (pointer_declarator "*extraout_v1" * identifier) ;) (declaration "MHD_Daemon *daemon_00;" type_identifier (pointer_declarator "*daemon_00" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar10;" type_identifier (pointer_declarator "*pMVar10" * identifier) ;) (declaration "MHD_Daemon *pMVar11;" type_identifier (pointer_declarator "*pMVar11" * identifier) ;) (declaration "MHD_FLAG MVar12;" type_identifier identifier ;) (declaration "MHD_mutex_ *pMVar13;" type_identifier (pointer_declarator "*pMVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (expression_statement "pMVar13 = &daemon->cleanup_connection_mutex;" (assignment_expression "pMVar13 = &daemon->cleanup_connection_mutex" identifier = (pointer_expression "&daemon->cleanup_connection_mutex" & (field_expression "daemon->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar13)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00018c44;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018c44;" goto statement_identifier ;)) (expression_statement "pMVar10 = daemon->cleanup_tail;" (assignment_expression "pMVar10 = daemon->cleanup_tail" identifier = (field_expression "daemon->cleanup_tail" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x0001892c:\n  if (pMVar10 == (MHD_Connection *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar9 = 0xd5d;\n    goto LAB_00018bf8;\n  }" statement_identifier : (if_statement "if (pMVar10 == (MHD_Connection *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar9 = 0xd5d;\n    goto LAB_00018bf8;\n  }" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar9 = 0xd5d;\n    goto LAB_00018bf8;\n  }" { (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)(pMVar13)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003d280" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003d280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar13)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar9 = 0xd5d;" (assignment_expression "uVar9 = 0xd5d" identifier = number_literal) ;) (goto_statement "goto LAB_00018bf8;" goto statement_identifier ;) }))) (if_statement "if (pMVar10->prev == (MHD_Connection *)0x0) {\n    daemon->cleanup_head = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;\nLAB_00018958:\n    pMVar5->prev = pMVar8;\n  }\n  else {\n    pMVar10->prev->next = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;\nLAB_00018b14:\n    daemon->cleanup_tail = pMVar8;\n  }" if (parenthesized_expression "(pMVar10->prev == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10->prev == (MHD_Connection *)0x0" (field_expression "pMVar10->prev" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    daemon->cleanup_head = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;\nLAB_00018958:\n    pMVar5->prev = pMVar8;\n  }" { (expression_statement "daemon->cleanup_head = pMVar10->next;" (assignment_expression "daemon->cleanup_head = pMVar10->next" (field_expression "daemon->cleanup_head" identifier -> field_identifier) = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar5 = pMVar10->next;" (assignment_expression "pMVar5 = pMVar10->next" identifier = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar8 = pMVar10->prev;" (assignment_expression "pMVar8 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018b14;" if (parenthesized_expression "(pMVar5 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018b14;" goto statement_identifier ;)) (labeled_statement "LAB_00018958:\n    pMVar5->prev = pMVar8;" statement_identifier : (expression_statement "pMVar5->prev = pMVar8;" (assignment_expression "pMVar5->prev = pMVar8" (field_expression "pMVar5->prev" identifier -> field_identifier) = identifier) ;)) }) (else_clause "else {\n    pMVar10->prev->next = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;\nLAB_00018b14:\n    daemon->cleanup_tail = pMVar8;\n  }" else (compound_statement "{\n    pMVar10->prev->next = pMVar10->next;\n    pMVar5 = pMVar10->next;\n    pMVar8 = pMVar10->prev;\n    if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;\nLAB_00018b14:\n    daemon->cleanup_tail = pMVar8;\n  }" { (expression_statement "pMVar10->prev->next = pMVar10->next;" (assignment_expression "pMVar10->prev->next = pMVar10->next" (field_expression "pMVar10->prev->next" (field_expression "pMVar10->prev" identifier -> field_identifier) -> field_identifier) = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar5 = pMVar10->next;" (assignment_expression "pMVar5 = pMVar10->next" identifier = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar8 = pMVar10->prev;" (assignment_expression "pMVar8 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018958;" if (parenthesized_expression "(pMVar5 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018958;" goto statement_identifier ;)) (labeled_statement "LAB_00018b14:\n    daemon->cleanup_tail = pMVar8;" statement_identifier : (expression_statement "daemon->cleanup_tail = pMVar8;" (assignment_expression "daemon->cleanup_tail = pMVar8" (field_expression "daemon->cleanup_tail" identifier -> field_identifier) = identifier) ;)) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003d280;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003d280" identifier = identifier) ;) (expression_statement "pMVar10->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->next = (MHD_Connection *)0x0" (field_expression "pMVar10->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->prev = (MHD_Connection *)0x0" (field_expression "pMVar10->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar2 = (*(code *)puVar1)(pMVar13);" (assignment_expression "iVar2 = (*(code *)puVar1)(pMVar13)" identifier = (call_expression "(*(code *)puVar1)(pMVar13)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar13)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00018bf4;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018bf4;" goto statement_identifier ;)) (if_statement "if ((((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }\n    MHD_pool_destroy(pMVar10->pool);\n    if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }\n    MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar14)();\n    if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }\n    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;\n  }" if (parenthesized_expression "((((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0))" ( (binary_expression "(((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)" (parenthesized_expression "(((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false))" ( (binary_expression "((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) ||\n      (pMVar10->thread_joined != false)" (parenthesized_expression "((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (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 "(pMVar10->thread_joined != false)" ( (binary_expression "pMVar10->thread_joined != false" (field_expression "pMVar10->thread_joined" identifier -> field_identifier) != false) ))) )) || (parenthesized_expression "(iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0)" ( (comma_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0), iVar2 == 0" (assignment_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0)" identifier = (call_expression "(*(code *)PTR_pthread_join_0003d160)((pMVar10->pid).handle,0)" (parenthesized_expression "(*(code *)PTR_pthread_join_0003d160)" ( (pointer_expression "*(code *)PTR_pthread_join_0003d160" * (cast_expression "(code *)PTR_pthread_join_0003d160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((pMVar10->pid).handle,0)" ( (field_expression "(pMVar10->pid).handle" (parenthesized_expression "(pMVar10->pid)" ( (field_expression "pMVar10->pid" identifier -> field_identifier) )) . field_identifier) , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    puVar1 = PTR_free_0003d250;\n    if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }\n    MHD_pool_destroy(pMVar10->pool);\n    if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }\n    MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }\n  }" { (expression_statement "puVar1 = PTR_free_0003d250;" (assignment_expression "puVar1 = PTR_free_0003d250" identifier = identifier) ;) (if_statement "if (pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }" if (parenthesized_expression "(pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar10->urh != (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar10->urh" identifier -> field_identifier) != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;\n      (*(code *)puVar1)();\n    }" { (expression_statement "pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0;" (assignment_expression "pMVar10->urh = (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar10->urh" identifier -> field_identifier) = (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "MHD_pool_destroy(pMVar10->pool);" (call_expression "MHD_pool_destroy(pMVar10->pool)" identifier (argument_list "(pMVar10->pool)" ( (field_expression "pMVar10->pool" identifier -> field_identifier) ))) ;) (if_statement "if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }" if (parenthesized_expression "(daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0)" ( (binary_expression "daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0" (field_expression "daemon->notify_connection" identifier -> field_identifier) != (cast_expression "(MHD_NotifyConnectionCallback)0x0" ( (type_descriptor "MHD_NotifyConnectionCallback" type_identifier) ) number_literal)) )) (compound_statement "{\n      (*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);\n    }" { (expression_statement "(*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED);" (call_expression "(*daemon->notify_connection)\n                (daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED)" (parenthesized_expression "(*daemon->notify_connection)" ( (pointer_expression "*daemon->notify_connection" * (field_expression "daemon->notify_connection" identifier -> field_identifier)) )) (argument_list "(daemon->notify_connection_cls,pMVar10,&pMVar10->socket_context,\n                 MHD_CONNECTION_NOTIFY_CLOSED)" ( (field_expression "daemon->notify_connection_cls" identifier -> field_identifier) , identifier , (pointer_expression "&pMVar10->socket_context" & (field_expression "pMVar10->socket_context" identifier -> field_identifier)) , identifier ))) ;) })) (expression_statement "MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len);" (call_expression "MHD_ip_limit_del(daemon,pMVar10->addr,pMVar10->addr_len)" identifier (argument_list "(daemon,pMVar10->addr,pMVar10->addr_len)" ( identifier , (field_expression "pMVar10->addr" identifier -> field_identifier) , (field_expression "pMVar10->addr_len" identifier -> field_identifier) ))) ;) (if_statement "if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }" if (parenthesized_expression "((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_EPOLL)" ( (binary_expression "daemon->options & MHD_USE_EPOLL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n      MVar3 = pMVar10->epoll_state;\n      if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }\n      if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;\n    }" { (expression_statement "MVar3 = pMVar10->epoll_state;" (assignment_expression "MVar3 = pMVar10->epoll_state" identifier = (field_expression "pMVar10->epoll_state" identifier -> field_identifier)) ;) (if_statement "if ((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }" if (parenthesized_expression "((MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY)" ( (binary_expression "(MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY" (parenthesized_expression "(MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL)" ( (binary_expression "MVar3 & MHD_EPOLL_STATE_IN_EREADY_EDLL" identifier & identifier) )) != identifier) )) (compound_statement "{\n        if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }\n        if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }\n        pMVar10->nextE = (MHD_Connection *)0x0;\n        pMVar10->prevE = (MHD_Connection *)0x0;\n        MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n        pMVar10->epoll_state = MVar3;\n      }" { (if_statement "if (pMVar10->prevE == (MHD_Connection *)0x0) {\n          daemon->eready_head = pMVar10->nextE;\n        }\n        else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }" if (parenthesized_expression "(pMVar10->prevE == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10->prevE == (MHD_Connection *)0x0" (field_expression "pMVar10->prevE" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          daemon->eready_head = pMVar10->nextE;\n        }" { (expression_statement "daemon->eready_head = pMVar10->nextE;" (assignment_expression "daemon->eready_head = pMVar10->nextE" (field_expression "daemon->eready_head" identifier -> field_identifier) = (field_expression "pMVar10->nextE" identifier -> field_identifier)) ;) }) (else_clause "else {\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }" else (compound_statement "{\n          pMVar10->prevE->nextE = pMVar10->nextE;\n        }" { (expression_statement "pMVar10->prevE->nextE = pMVar10->nextE;" (assignment_expression "pMVar10->prevE->nextE = pMVar10->nextE" (field_expression "pMVar10->prevE->nextE" (field_expression "pMVar10->prevE" identifier -> field_identifier) -> field_identifier) = (field_expression "pMVar10->nextE" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar10->nextE == (MHD_Connection *)0x0) {\n          daemon->eready_tail = pMVar10->prevE;\n        }\n        else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }" if (parenthesized_expression "(pMVar10->nextE == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10->nextE == (MHD_Connection *)0x0" (field_expression "pMVar10->nextE" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          daemon->eready_tail = pMVar10->prevE;\n        }" { (expression_statement "daemon->eready_tail = pMVar10->prevE;" (assignment_expression "daemon->eready_tail = pMVar10->prevE" (field_expression "daemon->eready_tail" identifier -> field_identifier) = (field_expression "pMVar10->prevE" identifier -> field_identifier)) ;) }) (else_clause "else {\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }" else (compound_statement "{\n          pMVar10->nextE->prevE = pMVar10->prevE;\n        }" { (expression_statement "pMVar10->nextE->prevE = pMVar10->prevE;" (assignment_expression "pMVar10->nextE->prevE = pMVar10->prevE" (field_expression "pMVar10->nextE->prevE" (field_expression "pMVar10->nextE" identifier -> field_identifier) -> field_identifier) = (field_expression "pMVar10->prevE" identifier -> field_identifier)) ;) }))) (expression_statement "pMVar10->nextE = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->nextE = (MHD_Connection *)0x0" (field_expression "pMVar10->nextE" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->prevE = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->prevE = (MHD_Connection *)0x0" (field_expression "pMVar10->prevE" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;" (assignment_expression "MVar3 = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL" identifier = (binary_expression "pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL" (field_expression "pMVar10->epoll_state" identifier -> field_identifier) & (unary_expression "~MHD_EPOLL_STATE_IN_EREADY_EDLL" ~ identifier))) ;) (expression_statement "pMVar10->epoll_state = MVar3;" (assignment_expression "pMVar10->epoll_state = MVar3" (field_expression "pMVar10->epoll_state" identifier -> field_identifier) = identifier) ;) })) (if_statement "if ((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)) goto LAB_00018b58;" if (parenthesized_expression "((daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY))" ( (binary_expression "(daemon->epoll_fd != -1) &&\n         (pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)" (parenthesized_expression "(daemon->epoll_fd != -1)" ( (binary_expression "daemon->epoll_fd != -1" (field_expression "daemon->epoll_fd" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)" ( (comma_expression "pcVar14 = (code *)PTR_epoll_ctl_0003d1f8,\n         (MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY" (assignment_expression "pcVar14 = (code *)PTR_epoll_ctl_0003d1f8" identifier = (cast_expression "(code *)PTR_epoll_ctl_0003d1f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY" (parenthesized_expression "(MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET)" ( (binary_expression "MVar3 & MHD_EPOLL_STATE_IN_EPOLL_SET" identifier & identifier) )) != identifier)) ))) )) (goto_statement "goto LAB_00018b58;" goto statement_identifier ;)) })) }) (else_clause "else {\n    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar14)();\n    if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }\n    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;\n  }" else (compound_statement "{\n    pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n    (*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar14)();\n    if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }\n    pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;\n  }" { (expression_statement "pcVar14 = *(code **)PTR_mhd_panic_0003d03c;" (assignment_expression "pcVar14 = *(code **)PTR_mhd_panic_0003d03c" identifier = (pointer_expression "*(code **)PTR_mhd_panic_0003d03c" * (cast_expression "(code **)PTR_mhd_panic_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);" (call_expression "(*pcVar14)(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003d038" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4d40" identifier + number_literal) ))) ;) (labeled_statement "LAB_00018b58:\n    iVar2 = (*pcVar14)();" statement_identifier : (expression_statement "iVar2 = (*pcVar14)();" (assignment_expression "iVar2 = (*pcVar14)()" identifier = (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar2 != 0) {\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;\n      pcVar14 = *(code **)PTR_mhd_panic_0003d03c;\n      (*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      MVar12 = daemon_00->options;\n      pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);\n      if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\n      pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n      uVar9 = 0x1a2b;\n      if (iVar2 != 0) goto LAB_00019098;\n      if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }\n      pMVar10 = daemon_00->connections_tail;\n      pcVar15 = *(code **)(pcVar14 + 0x24604);\n      if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);\n      uVar9 = 0x1a7c;\n      if (iVar2 != 0) goto LAB_00018f34;\n      if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }\nLAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;\n      while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }\n      pMVar13 = &pMVar11->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);\n      if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      pMVar5 = pMVar10->prevX;\n      pMVar8 = pMVar10->nextX;\n      if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }\n      pMVar8->prevX = pMVar5;\nLAB_00018ecc:\n      pMVar5 = pMVar10->prev;\n      pMVar8 = pMVar10->next;\n      pMVar10->nextX = (MHD_Connection *)0x0;\n      pMVar10->prevX = (MHD_Connection *)0x0;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;\nLAB_00018ee0:\n      pMVar5->next = pMVar8;\n      pMVar5 = pMVar10->next;\n      pMVar8 = pMVar10->prev;\n      if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;\nLAB_00018ef0:\n      pMVar5->prev = pMVar8;\n      pMVar10->next = (MHD_Connection *)0x0;\n      pMVar10->prev = (MHD_Connection *)0x0;\n      pMVar10->next = pMVar11->cleanup_head;\n      if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;\n      do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );\n    }" { (expression_statement "daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038;" (assignment_expression "daemon_00 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003d038" identifier = (pointer_expression "*(MHD_Daemon **)PTR_mhd_panic_cls_0003d038" * (cast_expression "(MHD_Daemon **)PTR_mhd_panic_cls_0003d038" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar14 = *(code **)PTR_mhd_panic_0003d03c;" (assignment_expression "pcVar14 = *(code **)PTR_mhd_panic_0003d03c" identifier = (pointer_expression "*(code **)PTR_mhd_panic_0003d03c" * (cast_expression "(code **)PTR_mhd_panic_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);" (call_expression "(*pcVar14)(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(daemon_00,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" ( identifier , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4d24" identifier + number_literal) ))) ;) (expression_statement "MVar12 = daemon_00->options;" (assignment_expression "MVar12 = daemon_00->options" identifier = (field_expression "daemon_00->options" identifier -> field_identifier)) ;) (expression_statement "pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE);" (assignment_expression "pMVar13 = (MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE)" identifier = (cast_expression "(MHD_mutex_ *)(MVar12 & MHD_ALLOW_UPGRADE)" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(MVar12 & MHD_ALLOW_UPGRADE)" ( (binary_expression "MVar12 & MHD_ALLOW_UPGRADE" identifier & identifier) )))) ;) (if_statement "if ((MVar12 & 0x2000) != MHD_NO_FLAG) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }" if (parenthesized_expression "((MVar12 & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(MVar12 & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(MVar12 & 0x2000)" ( (binary_expression "MVar12 & 0x2000" identifier & number_literal) )) != identifier) )) (compound_statement "{\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }" { (expression_statement "daemon_00->resuming = true;" (assignment_expression "daemon_00->resuming = true" (field_expression "daemon_00->resuming" identifier -> field_identifier) = true) ;) (expression_statement "resume_suspended_connections(daemon_00);" (call_expression "resume_suspended_connections(daemon_00)" identifier (argument_list "(daemon_00)" ( identifier ))) ;) })) (expression_statement "pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex;" (assignment_expression "pMVar11 = (MHD_Daemon *)&daemon_00->cleanup_connection_mutex" identifier = (cast_expression "(MHD_Daemon *)&daemon_00->cleanup_connection_mutex" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&daemon_00->cleanup_connection_mutex" & (field_expression "daemon_00->cleanup_connection_mutex" identifier -> field_identifier)))) ;) (expression_statement "iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);" (assignment_expression "iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11)" identifier = (call_expression "(**(code **)(pcVar14 + 0x24594))(pMVar11)" (parenthesized_expression "(**(code **)(pcVar14 + 0x24594))" ( (pointer_expression "**(code **)(pcVar14 + 0x24594)" * (pointer_expression "*(code **)(pcVar14 + 0x24594)" * (cast_expression "(code **)(pcVar14 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24594)" ( (binary_expression "pcVar14 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(pMVar11)" ( identifier )))) ;) (expression_statement "uVar9 = 0x1a2b;" (assignment_expression "uVar9 = 0x1a2b" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_00019098;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019098;" goto statement_identifier ;)) (if_statement "if (pMVar13 == (MHD_mutex_ *)0x0) {\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }" if (parenthesized_expression "(pMVar13 == (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar13 == (MHD_mutex_ *)0x0" identifier == (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = 0x1a58;\n        if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }" { (expression_statement "uVar9 = 0x1a58;" (assignment_expression "uVar9 = 0x1a58" identifier = number_literal) ;) (if_statement "if (daemon_00->suspended_connections_head != (MHD_Connection *)0x0) {\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }" if (parenthesized_expression "(daemon_00->suspended_connections_head != (MHD_Connection *)0x0)" ( (binary_expression "daemon_00->suspended_connections_head != (MHD_Connection *)0x0" (field_expression "daemon_00->suspended_connections_head" identifier -> field_identifier) != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\n          goto LAB_000190c4;\n        }" { (expression_statement "puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);" (assignment_expression "puVar7 = *(undefined4 **)(pcVar14 + 0x243bc)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243bc)" ( (binary_expression "pcVar14 + 0x243bc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000190c4;" goto statement_identifier ;) })) }) (else_clause "else {\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }" else (compound_statement "{\n        pMVar10 = daemon_00->suspended_connections_tail;\n        if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }\n      }" { (expression_statement "pMVar10 = daemon_00->suspended_connections_tail;" (assignment_expression "pMVar10 = daemon_00->suspended_connections_tail" identifier = (field_expression "daemon_00->suspended_connections_tail" identifier -> field_identifier)) ;) (if_statement "if (pMVar10 != (MHD_Connection *)0x0) {\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }" if (parenthesized_expression "(pMVar10 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pMVar6 = pMVar10->urh;\n          iVar2 = *(int *)(pcVar14 + 0x243b0);\n          if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }\n        }" { (expression_statement "pMVar6 = pMVar10->urh;" (assignment_expression "pMVar6 = pMVar10->urh" identifier = (field_expression "pMVar10->urh" identifier -> field_identifier)) ;) (expression_statement "iVar2 = *(int *)(pcVar14 + 0x243b0);" (assignment_expression "iVar2 = *(int *)(pcVar14 + 0x243b0)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) ))))) ;) (if_statement "if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;" if (parenthesized_expression "(pMVar6 == (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar6 == (MHD_UpgradeResponseHandle *)0x0" identifier == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000190c0;" goto statement_identifier ;)) (while_statement "while( true ) {\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            if (pMVar10 == (MHD_Connection *)0x0) break;\n            pMVar6 = pMVar10->urh;\n            uVar9 = 0x1a37;\n            if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;\n          }" { (if_statement "if (pMVar6->was_closed == false) {\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }\n            else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }" if (parenthesized_expression "(pMVar6->was_closed == false)" ( (binary_expression "pMVar6->was_closed == false" (field_expression "pMVar6->was_closed" identifier -> field_identifier) == false) )) (compound_statement "{\n              MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }" { (expression_statement "MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9);" (call_expression "MHD_DLOG(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9)" identifier (argument_list "(daemon_00,(char *)(iVar2 + -0x4ca4),uVar9)" ( identifier , (cast_expression "(char *)(iVar2 + -0x4ca4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x4ca4)" ( (binary_expression "iVar2 + -0x4ca4" identifier + number_literal) ))) , identifier ))) ;) (expression_statement "pMVar10->urh->was_closed = true;" (assignment_expression "pMVar10->urh->was_closed = true" (field_expression "pMVar10->urh->was_closed" (field_expression "pMVar10->urh" identifier -> field_identifier) -> field_identifier) = true) ;) (expression_statement "pMVar10->resuming = true;" (assignment_expression "pMVar10->resuming = true" (field_expression "pMVar10->resuming" identifier -> field_identifier) = true) ;) (expression_statement "daemon_00->resuming = true;" (assignment_expression "daemon_00->resuming = true" (field_expression "daemon_00->resuming" identifier -> field_identifier) = true) ;) (expression_statement "pMVar10 = pMVar10->prev;" (assignment_expression "pMVar10 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) }) (else_clause "else {\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }" else (compound_statement "{\n              pMVar10->urh->was_closed = true;\n              pMVar10->resuming = true;\n              daemon_00->resuming = true;\n              pMVar10 = pMVar10->prev;\n            }" { (expression_statement "pMVar10->urh->was_closed = true;" (assignment_expression "pMVar10->urh->was_closed = true" (field_expression "pMVar10->urh->was_closed" (field_expression "pMVar10->urh" identifier -> field_identifier) -> field_identifier) = true) ;) (expression_statement "pMVar10->resuming = true;" (assignment_expression "pMVar10->resuming = true" (field_expression "pMVar10->resuming" identifier -> field_identifier) = true) ;) (expression_statement "daemon_00->resuming = true;" (assignment_expression "daemon_00->resuming = true" (field_expression "daemon_00->resuming" identifier -> field_identifier) = true) ;) (expression_statement "pMVar10 = pMVar10->prev;" (assignment_expression "pMVar10 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) break;" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pMVar6 = pMVar10->urh;" (assignment_expression "pMVar6 = pMVar10->urh" identifier = (field_expression "pMVar10->urh" identifier -> field_identifier)) ;) (expression_statement "uVar9 = 0x1a37;" (assignment_expression "uVar9 = 0x1a37" identifier = number_literal) ;) (if_statement "if (pMVar6 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_000190c0;" if (parenthesized_expression "(pMVar6 == (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar6 == (MHD_UpgradeResponseHandle *)0x0" identifier == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000190c0;" goto statement_identifier ;)) })) })) }))) (expression_statement "pMVar10 = daemon_00->connections_tail;" (assignment_expression "pMVar10 = daemon_00->connections_tail" identifier = (field_expression "daemon_00->connections_tail" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x24604);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x24604)" * (cast_expression "(code **)(pcVar14 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24604)" ( (binary_expression "pcVar14 + 0x24604" identifier + number_literal) ))))) ;) (if_statement "if (pMVar10 != (MHD_Connection *)0x0) {\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }" if (parenthesized_expression "(pMVar10 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);\n        pcVar15 = *(code **)(pcVar14 + 0x24604);\n        pMVar10 = (MHD_Connection *)0x0;\n        if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }\n      }" { (do_statement "do {\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        } while (pMVar10 != (MHD_Connection *)0x0);" do (compound_statement "{\n          (**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);\n          pMVar10 = pMVar10->prev;\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2);" (call_expression "(**(code **)(pcVar14 + 0x244b8))(pMVar10->socket_fd,2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x244b8))" ( (pointer_expression "**(code **)(pcVar14 + 0x244b8)" * (pointer_expression "*(code **)(pcVar14 + 0x244b8)" * (cast_expression "(code **)(pcVar14 + 0x244b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x244b8)" ( (binary_expression "pcVar14 + 0x244b8" identifier + number_literal) ))))) )) (argument_list "(pMVar10->socket_fd,2)" ( (field_expression "pMVar10->socket_fd" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "pMVar10 = pMVar10->prev;" (assignment_expression "pMVar10 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pMVar10 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x24604);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x24604)" * (cast_expression "(code **)(pcVar14 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24604)" ( (binary_expression "pcVar14 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "pMVar10 = (MHD_Connection *)0x0;" (assignment_expression "pMVar10 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) {\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }" if (parenthesized_expression "((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar12 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) != identifier) )) (compound_statement "{\n          pMVar10 = daemon_00->connections_tail;\n          while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }\n        }" { (expression_statement "pMVar10 = daemon_00->connections_tail;" (assignment_expression "pMVar10 = daemon_00->connections_tail" identifier = (field_expression "daemon_00->connections_tail" identifier -> field_identifier)) ;) (while_statement "while (pMVar10 != (MHD_Connection *)0x0) {\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }" while (parenthesized_expression "(pMVar10 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }\n            iVar2 = (*pcVar15)(pMVar11);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);\n            if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);\n            if (iVar2 != 0) goto LAB_00019094;\n            pMVar10->thread_joined = true;\n            pcVar15 = *(code **)(pcVar14 + 0x24604);\n            pMVar10 = daemon_00->connections_tail;\n          }" { (while_statement "while (pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false) {\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }" while (parenthesized_expression "(pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false)" ( (comma_expression "pcVar15 = *(code **)(pcVar14 + 0x24604), pMVar10->thread_joined != false" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x24604)" * (cast_expression "(code **)(pcVar14 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24604)" ( (binary_expression "pcVar14 + 0x24604" identifier + number_literal) ))))) , (binary_expression "pMVar10->thread_joined != false" (field_expression "pMVar10->thread_joined" identifier -> field_identifier) != false)) )) (compound_statement "{\n              pMVar10 = pMVar10->prev;\n              if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;\n            }" { (expression_statement "pMVar10 = pMVar10->prev;" (assignment_expression "pMVar10 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) goto LAB_00018e1c;" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018e1c;" goto statement_identifier ;)) })) (expression_statement "iVar2 = (*pcVar15)(pMVar11);" (assignment_expression "iVar2 = (*pcVar15)(pMVar11)" identifier = (call_expression "(*pcVar15)(pMVar11)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(pMVar11)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar9 = 0x1a6f;\n              goto LAB_00018f34;\n            }" { (expression_statement "uVar9 = 0x1a6f;" (assignment_expression "uVar9 = 0x1a6f" identifier = number_literal) ;) (goto_statement "goto LAB_00018f34;" goto statement_identifier ;) })) (expression_statement "iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0);" (assignment_expression "iVar2 = (**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0)" identifier = (call_expression "(**(code **)(pcVar14 + 0x244e4))((pMVar10->pid).handle,0)" (parenthesized_expression "(**(code **)(pcVar14 + 0x244e4))" ( (pointer_expression "**(code **)(pcVar14 + 0x244e4)" * (pointer_expression "*(code **)(pcVar14 + 0x244e4)" * (cast_expression "(code **)(pcVar14 + 0x244e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x244e4)" ( (binary_expression "pcVar14 + 0x244e4" identifier + number_literal) ))))) )) (argument_list "((pMVar10->pid).handle,0)" ( (field_expression "(pMVar10->pid).handle" (parenthesized_expression "(pMVar10->pid)" ( (field_expression "pMVar10->pid" identifier -> field_identifier) )) . field_identifier) , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar9 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar9 = 0x1a72;\n              goto LAB_00019098;\n            }" { (expression_statement "uVar9 = 0x1a71;" (assignment_expression "uVar9 = 0x1a71" identifier = number_literal) ;) (labeled_statement "LAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                        (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243c0)" ( (binary_expression "pcVar14 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                         uVar9,*(int *)(pcVar14 + 0x243b0) + -0x4d40)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243bc)" ( (binary_expression "pcVar14 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x4d40" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_00019094:\n              uVar9 = 0x1a72;" statement_identifier : (expression_statement "uVar9 = 0x1a72;" (assignment_expression "uVar9 = 0x1a72" identifier = number_literal) ;)) (goto_statement "goto LAB_00019098;" goto statement_identifier ;) })) (expression_statement "iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11);" (assignment_expression "iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar11)" identifier = (call_expression "(**(code **)(pcVar14 + 0x24594))(pMVar11)" (parenthesized_expression "(**(code **)(pcVar14 + 0x24594))" ( (pointer_expression "**(code **)(pcVar14 + 0x24594)" * (pointer_expression "*(code **)(pcVar14 + 0x24594)" * (cast_expression "(code **)(pcVar14 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24594)" ( (binary_expression "pcVar14 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(pMVar11)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00019094;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019094;" goto statement_identifier ;)) (expression_statement "pMVar10->thread_joined = true;" (assignment_expression "pMVar10->thread_joined = true" (field_expression "pMVar10->thread_joined" identifier -> field_identifier) = true) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x24604);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x24604)" * (cast_expression "(code **)(pcVar14 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24604)" ( (binary_expression "pcVar14 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "pMVar10 = daemon_00->connections_tail;" (assignment_expression "pMVar10 = daemon_00->connections_tail" identifier = (field_expression "daemon_00->connections_tail" identifier -> field_identifier)) ;) })) })) })) (labeled_statement "LAB_00018e1c:\n      iVar2 = (*pcVar15)(pMVar11);" statement_identifier : (expression_statement "iVar2 = (*pcVar15)(pMVar11);" (assignment_expression "iVar2 = (*pcVar15)(pMVar11)" identifier = (call_expression "(*pcVar15)(pMVar11)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(pMVar11)" ( identifier )))) ;)) (expression_statement "uVar9 = 0x1a7c;" (assignment_expression "uVar9 = 0x1a7c" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_00018f34;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018f34;" goto statement_identifier ;)) (if_statement "if (pMVar13 != (MHD_mutex_ *)0x0) {\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }" if (parenthesized_expression "(pMVar13 != (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar13 != (MHD_mutex_ *)0x0" identifier != (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        daemon_00->resuming = true;\n        resume_suspended_connections(daemon_00);\n      }" { (expression_statement "daemon_00->resuming = true;" (assignment_expression "daemon_00->resuming = true" (field_expression "daemon_00->resuming" identifier -> field_identifier) = true) ;) (expression_statement "resume_suspended_connections(daemon_00);" (call_expression "resume_suspended_connections(daemon_00)" identifier (argument_list "(daemon_00)" ( identifier ))) ;) })) (labeled_statement "LAB_00018e38:\n      pMVar10 = daemon_00->connections_tail;" statement_identifier : (expression_statement "pMVar10 = daemon_00->connections_tail;" (assignment_expression "pMVar10 = daemon_00->connections_tail" identifier = (field_expression "daemon_00->connections_tail" identifier -> field_identifier)) ;)) (while_statement "while( true ) {\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }\n        if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;\n        pMVar11 = pMVar10->daemon;\n        if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar10);\n        pMVar10 = daemon_00->connections_tail;\n      }" { (if_statement "if (pMVar10 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          MHD_cleanup_connections(daemon_00);\n          return;\n        }" { (expression_statement "MHD_cleanup_connections(daemon_00);" (call_expression "MHD_cleanup_connections(daemon_00)" identifier (argument_list "(daemon_00)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)) goto LAB_00019070;" if (parenthesized_expression "(((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false))" ( (binary_expression "((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (uVar9 = 0x1a91, pMVar10->thread_joined == false)" (parenthesized_expression "((daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(daemon_00->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(daemon_00->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "daemon_00->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "daemon_00->options" identifier -> field_identifier) & identifier) )) != identifier) )) && (parenthesized_expression "(uVar9 = 0x1a91, pMVar10->thread_joined == false)" ( (comma_expression "uVar9 = 0x1a91, pMVar10->thread_joined == false" (assignment_expression "uVar9 = 0x1a91" identifier = number_literal) , (binary_expression "pMVar10->thread_joined == false" (field_expression "pMVar10->thread_joined" identifier -> field_identifier) == false)) ))) )) (goto_statement "goto LAB_00019070;" goto statement_identifier ;)) (expression_statement "pMVar11 = pMVar10->daemon;" (assignment_expression "pMVar11 = pMVar10->daemon" identifier = (field_expression "pMVar10->daemon" identifier -> field_identifier)) ;) (if_statement "if ((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;" if (parenthesized_expression "((pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(pMVar11->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(pMVar11->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar11->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar11->options" identifier -> field_identifier) & identifier) )) == identifier) )) (break_statement "break;" break ;)) (expression_statement "MHD_connection_mark_closed_(pMVar10);" (call_expression "MHD_connection_mark_closed_(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier ))) ;) (expression_statement "pMVar10 = daemon_00->connections_tail;" (assignment_expression "pMVar10 = daemon_00->connections_tail" identifier = (field_expression "daemon_00->connections_tail" identifier -> field_identifier)) ;) })) (expression_statement "pMVar13 = &pMVar11->cleanup_connection_mutex;" (assignment_expression "pMVar13 = &pMVar11->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar11->cleanup_connection_mutex" & (field_expression "pMVar11->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);" (call_expression "MHD_connection_close_(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN)" identifier (argument_list "(pMVar10,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13);" (assignment_expression "iVar2 = (**(code **)(pcVar14 + 0x24594))(pMVar13)" identifier = (call_expression "(**(code **)(pcVar14 + 0x24594))(pMVar13)" (parenthesized_expression "(**(code **)(pcVar14 + 0x24594))" ( (pointer_expression "**(code **)(pcVar14 + 0x24594)" * (pointer_expression "*(code **)(pcVar14 + 0x24594)" * (cast_expression "(code **)(pcVar14 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24594)" ( (binary_expression "pcVar14 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(pMVar13)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" { (do_statement "do {\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        } while( true );" do (compound_statement "{\n          uVar9 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar9 = 0x1a37;\n          puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);\n        }" { (expression_statement "uVar9 = 0x1274;" (assignment_expression "uVar9 = 0x1274" identifier = number_literal) ;) (labeled_statement "LAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243c0)" ( (binary_expression "pcVar14 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x62c0)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243bc)" ( (binary_expression "pcVar14 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x62c0" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_000190c0:\n          uVar9 = 0x1a37;" statement_identifier : (expression_statement "uVar9 = 0x1a37;" (assignment_expression "uVar9 = 0x1a37" identifier = number_literal) ;)) (expression_statement "puVar7 = *(undefined4 **)(pcVar14 + 0x243bc);" (assignment_expression "puVar7 = *(undefined4 **)(pcVar14 + 0x243bc)" identifier = (pointer_expression "*(undefined4 **)(pcVar14 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243bc)" ( (binary_expression "pcVar14 + 0x243bc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243c0)" ( (binary_expression "pcVar14 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(*puVar7,*(int *)(pcVar14 + 0x243b0) + -0x51b0,uVar9,\n                     *(int *)(pcVar14 + 0x243b0) + -0x4ce4)" ( (pointer_expression "*puVar7" * identifier) , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x4ce4" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pMVar5 = pMVar10->prevX;" (assignment_expression "pMVar5 = pMVar10->prevX" identifier = (field_expression "pMVar10->prevX" identifier -> field_identifier)) ;) (expression_statement "pMVar8 = pMVar10->nextX;" (assignment_expression "pMVar8 = pMVar10->nextX" identifier = (field_expression "pMVar10->nextX" identifier -> field_identifier)) ;) (if_statement "if (pMVar10->connection_timeout == pMVar11->connection_timeout) {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }" if (parenthesized_expression "(pMVar10->connection_timeout == pMVar11->connection_timeout)" ( (binary_expression "pMVar10->connection_timeout == pMVar11->connection_timeout" (field_expression "pMVar10->connection_timeout" identifier -> field_identifier) == (field_expression "pMVar11->connection_timeout" identifier -> field_identifier)) )) (compound_statement "{\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }\n      }" { (if_statement "if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }" if (parenthesized_expression "(pMVar5 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pMVar11->normal_timeout_head = pMVar8;\n        }" { (expression_statement "pMVar11->normal_timeout_head = pMVar8;" (assignment_expression "pMVar11->normal_timeout_head = pMVar8" (field_expression "pMVar11->normal_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar5->nextX = pMVar8;\n        }" else (compound_statement "{\n          pMVar5->nextX = pMVar8;\n        }" { (expression_statement "pMVar5->nextX = pMVar8;" (assignment_expression "pMVar5->nextX = pMVar8" (field_expression "pMVar5->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar8 = pMVar10->nextX;" (assignment_expression "pMVar8 = pMVar10->nextX" identifier = (field_expression "pMVar10->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar5 = pMVar10->prevX;" (assignment_expression "pMVar5 = pMVar10->prevX" identifier = (field_expression "pMVar10->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar8 == (MHD_Connection *)0x0) {\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }" if (parenthesized_expression "(pMVar8 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pMVar11->normal_timeout_tail = pMVar5;\n          goto LAB_00018ecc;\n        }" { (expression_statement "pMVar11->normal_timeout_tail = pMVar5;" (assignment_expression "pMVar11->normal_timeout_tail = pMVar5" (field_expression "pMVar11->normal_timeout_tail" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00018ecc;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }" else (compound_statement "{\n        if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }\n        pMVar8 = pMVar10->nextX;\n        pMVar5 = pMVar10->prevX;\n        if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;\n      }" { (if_statement "if (pMVar5 == (MHD_Connection *)0x0) {\n          pMVar11->manual_timeout_head = pMVar8;\n        }\n        else {\n          pMVar5->nextX = pMVar8;\n        }" if (parenthesized_expression "(pMVar5 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pMVar11->manual_timeout_head = pMVar8;\n        }" { (expression_statement "pMVar11->manual_timeout_head = pMVar8;" (assignment_expression "pMVar11->manual_timeout_head = pMVar8" (field_expression "pMVar11->manual_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar5->nextX = pMVar8;\n        }" else (compound_statement "{\n          pMVar5->nextX = pMVar8;\n        }" { (expression_statement "pMVar5->nextX = pMVar8;" (assignment_expression "pMVar5->nextX = pMVar8" (field_expression "pMVar5->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar8 = pMVar10->nextX;" (assignment_expression "pMVar8 = pMVar10->nextX" identifier = (field_expression "pMVar10->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar5 = pMVar10->prevX;" (assignment_expression "pMVar5 = pMVar10->prevX" identifier = (field_expression "pMVar10->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar8 == (MHD_Connection *)0x0) goto LAB_00018f58;" if (parenthesized_expression "(pMVar8 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018f58;" goto statement_identifier ;)) }))) (expression_statement "pMVar8->prevX = pMVar5;" (assignment_expression "pMVar8->prevX = pMVar5" (field_expression "pMVar8->prevX" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00018ecc:\n      pMVar5 = pMVar10->prev;" statement_identifier : (expression_statement "pMVar5 = pMVar10->prev;" (assignment_expression "pMVar5 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;)) (expression_statement "pMVar8 = pMVar10->next;" (assignment_expression "pMVar8 = pMVar10->next" identifier = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar10->nextX = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->nextX = (MHD_Connection *)0x0" (field_expression "pMVar10->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->prevX = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->prevX = (MHD_Connection *)0x0" (field_expression "pMVar10->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f70;" if (parenthesized_expression "(pMVar5 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018f70;" goto statement_identifier ;)) (labeled_statement "LAB_00018ee0:\n      pMVar5->next = pMVar8;" statement_identifier : (expression_statement "pMVar5->next = pMVar8;" (assignment_expression "pMVar5->next = pMVar8" (field_expression "pMVar5->next" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar5 = pMVar10->next;" (assignment_expression "pMVar5 = pMVar10->next" identifier = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar8 = pMVar10->prev;" (assignment_expression "pMVar8 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar5 == (MHD_Connection *)0x0) goto LAB_00018f80;" if (parenthesized_expression "(pMVar5 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018f80;" goto statement_identifier ;)) (labeled_statement "LAB_00018ef0:\n      pMVar5->prev = pMVar8;" statement_identifier : (expression_statement "pMVar5->prev = pMVar8;" (assignment_expression "pMVar5->prev = pMVar8" (field_expression "pMVar5->prev" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar10->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->next = (MHD_Connection *)0x0" (field_expression "pMVar10->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->prev = (MHD_Connection *)0x0" (field_expression "pMVar10->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->next = pMVar11->cleanup_head;" (assignment_expression "pMVar10->next = pMVar11->cleanup_head" (field_expression "pMVar10->next" identifier -> field_identifier) = (field_expression "pMVar11->cleanup_head" identifier -> field_identifier)) ;) (if_statement "if (pMVar11->cleanup_tail == (MHD_Connection *)0x0) goto LAB_00018fa0;" if (parenthesized_expression "(pMVar11->cleanup_tail == (MHD_Connection *)0x0)" ( (binary_expression "pMVar11->cleanup_tail == (MHD_Connection *)0x0" (field_expression "pMVar11->cleanup_tail" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018fa0;" goto statement_identifier ;)) (do_statement "do {\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      } while( true );" do (compound_statement "{\n        pMVar11->cleanup_head->prev = pMVar10;\n        while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }\n      }" { (expression_statement "pMVar11->cleanup_head->prev = pMVar10;" (assignment_expression "pMVar11->cleanup_head->prev = pMVar10" (field_expression "pMVar11->cleanup_head->prev" (field_expression "pMVar11->cleanup_head" identifier -> field_identifier) -> field_identifier) = identifier) ;) (while_statement "while( true ) {\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar15 = *(code **)(pcVar14 + 0x24604);\n          pMVar11->cleanup_head = pMVar10;\n          iVar2 = (*pcVar15)(pMVar13);\n          if (iVar2 == 0) goto LAB_00018e38;\n          uVar9 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);\n          pMVar5 = extraout_v1;\nLAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;\n          pMVar10->nextX = (MHD_Connection *)0x0;\n          pMVar10->prevX = (MHD_Connection *)0x0;\n          pMVar5 = pMVar10->prev;\n          pMVar8 = pMVar10->next;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;\nLAB_00018f70:\n          pMVar11->connections_head = pMVar8;\n          pMVar5 = pMVar10->next;\n          pMVar8 = pMVar10->prev;\n          if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;\nLAB_00018f80:\n          pMVar11->connections_tail = pMVar8;\n          pMVar10->next = (MHD_Connection *)0x0;\n          pMVar10->prev = (MHD_Connection *)0x0;\n          pMVar10->next = pMVar11->cleanup_head;\n          if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;\nLAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;\n        }" { (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x24604);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x24604)" * (cast_expression "(code **)(pcVar14 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24604)" ( (binary_expression "pcVar14 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "pMVar11->cleanup_head = pMVar10;" (assignment_expression "pMVar11->cleanup_head = pMVar10" (field_expression "pMVar11->cleanup_head" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = (*pcVar15)(pMVar13);" (assignment_expression "iVar2 = (*pcVar15)(pMVar13)" identifier = (call_expression "(*pcVar15)(pMVar13)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(pMVar13)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_00018e38;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e38;" goto statement_identifier ;)) (expression_statement "uVar9 = 0x1287;" (assignment_expression "uVar9 = 0x1287" identifier = number_literal) ;) (labeled_statement "LAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298);" (call_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))\n                    (**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar14 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar14 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243c0)" ( (binary_expression "pcVar14 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar14 + 0x243bc),*(int *)(pcVar14 + 0x243b0) + -0x51b0,\n                     uVar9,*(int *)(pcVar14 + 0x243b0) + -0x6298)" ( (pointer_expression "**(undefined4 **)(pcVar14 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar14 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar14 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x243bc)" ( (binary_expression "pcVar14 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x243b0) + -0x6298" (pointer_expression "*(int *)(pcVar14 + 0x243b0)" * (cast_expression "(int *)(pcVar14 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x243b0)" ( (binary_expression "pcVar14 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "pMVar5 = extraout_v1;" (assignment_expression "pMVar5 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_00018f58:\n          pMVar11->manual_timeout_tail = pMVar5;" statement_identifier : (expression_statement "pMVar11->manual_timeout_tail = pMVar5;" (assignment_expression "pMVar11->manual_timeout_tail = pMVar5" (field_expression "pMVar11->manual_timeout_tail" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar10->nextX = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->nextX = (MHD_Connection *)0x0" (field_expression "pMVar10->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->prevX = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->prevX = (MHD_Connection *)0x0" (field_expression "pMVar10->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar5 = pMVar10->prev;" (assignment_expression "pMVar5 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) (expression_statement "pMVar8 = pMVar10->next;" (assignment_expression "pMVar8 = pMVar10->next" identifier = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (if_statement "if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ee0;" if (parenthesized_expression "(pMVar5 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018ee0;" goto statement_identifier ;)) (labeled_statement "LAB_00018f70:\n          pMVar11->connections_head = pMVar8;" statement_identifier : (expression_statement "pMVar11->connections_head = pMVar8;" (assignment_expression "pMVar11->connections_head = pMVar8" (field_expression "pMVar11->connections_head" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar5 = pMVar10->next;" (assignment_expression "pMVar5 = pMVar10->next" identifier = (field_expression "pMVar10->next" identifier -> field_identifier)) ;) (expression_statement "pMVar8 = pMVar10->prev;" (assignment_expression "pMVar8 = pMVar10->prev" identifier = (field_expression "pMVar10->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar5 != (MHD_Connection *)0x0) goto LAB_00018ef0;" if (parenthesized_expression "(pMVar5 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar5 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018ef0;" goto statement_identifier ;)) (labeled_statement "LAB_00018f80:\n          pMVar11->connections_tail = pMVar8;" statement_identifier : (expression_statement "pMVar11->connections_tail = pMVar8;" (assignment_expression "pMVar11->connections_tail = pMVar8" (field_expression "pMVar11->connections_tail" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar10->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->next = (MHD_Connection *)0x0" (field_expression "pMVar10->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar10->prev = (MHD_Connection *)0x0" (field_expression "pMVar10->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar10->next = pMVar11->cleanup_head;" (assignment_expression "pMVar10->next = pMVar11->cleanup_head" (field_expression "pMVar10->next" identifier -> field_identifier) = (field_expression "pMVar11->cleanup_head" identifier -> field_identifier)) ;) (if_statement "if (pMVar11->cleanup_tail != (MHD_Connection *)0x0) break;" if (parenthesized_expression "(pMVar11->cleanup_tail != (MHD_Connection *)0x0)" ( (binary_expression "pMVar11->cleanup_tail != (MHD_Connection *)0x0" (field_expression "pMVar11->cleanup_tail" identifier -> field_identifier) != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018fa0:\n          pMVar11->cleanup_tail = pMVar10;" statement_identifier : (expression_statement "pMVar11->cleanup_tail = pMVar10;" (assignment_expression "pMVar11->cleanup_tail = pMVar10" (field_expression "pMVar11->cleanup_tail" identifier -> field_identifier) = identifier) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET;" (assignment_expression "pMVar10->epoll_state = pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "pMVar10->epoll_state" identifier -> field_identifier) = (binary_expression "pMVar10->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "pMVar10->epoll_state" identifier -> field_identifier) & (unary_expression "~MHD_EPOLL_STATE_IN_EPOLL_SET" ~ identifier))) ;) }))) (if_statement "if (pMVar10->response != (MHD_Response *)0x0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    pMVar10->response = (MHD_Response *)0x0;\n  }" if (parenthesized_expression "(pMVar10->response != (MHD_Response *)0x0)" ( (binary_expression "pMVar10->response != (MHD_Response *)0x0" (field_expression "pMVar10->response" identifier -> field_identifier) != (cast_expression "(MHD_Response *)0x0" ( (type_descriptor "MHD_Response *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    pMVar10->response = (MHD_Response *)0x0;\n  }" { (expression_statement "(*(code *)PTR_MHD_destroy_response_0003d234)();" (call_expression "(*(code *)PTR_MHD_destroy_response_0003d234)()" (parenthesized_expression "(*(code *)PTR_MHD_destroy_response_0003d234)" ( (pointer_expression "*(code *)PTR_MHD_destroy_response_0003d234" * (cast_expression "(code *)PTR_MHD_destroy_response_0003d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pMVar10->response = (MHD_Response *)0x0;" (assignment_expression "pMVar10->response = (MHD_Response *)0x0" (field_expression "pMVar10->response" identifier -> field_identifier) = (cast_expression "(MHD_Response *)0x0" ( (type_descriptor "MHD_Response *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;" if (parenthesized_expression "(((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9))" ( (binary_expression "((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" (parenthesized_expression "((pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0))" ( (binary_expression "(pMVar10->socket_fd != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" (parenthesized_expression "(pMVar10->socket_fd != -1)" ( (binary_expression "pMVar10->socket_fd != -1" (field_expression "pMVar10->socket_fd" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" ( (comma_expression "iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_close_0003d128)()" identifier = (call_expression "(*(code *)PTR_close_0003d128)()" (parenthesized_expression "(*(code *)PTR_close_0003d128)" ( (pointer_expression "*(code *)PTR_close_0003d128" * (cast_expression "(code *)PTR_close_0003d128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003d198)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003d198)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003d198)" ( (pointer_expression "*(code *)PTR___errno_location_0003d198" * (cast_expression "(code *)PTR___errno_location_0003d198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_00018c1c;" goto statement_identifier ;)) (if_statement "if (pMVar10->addr != (sockaddr *)0x0) {\n    (*(code *)PTR_free_0003d250)();\n  }" if (parenthesized_expression "(pMVar10->addr != (sockaddr *)0x0)" ( (binary_expression "pMVar10->addr != (sockaddr *)0x0" (field_expression "pMVar10->addr" identifier -> field_identifier) != (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_0003d250)();\n  }" { (expression_statement "(*(code *)PTR_free_0003d250)();" (call_expression "(*(code *)PTR_free_0003d250)()" (parenthesized_expression "(*(code *)PTR_free_0003d250)" ( (pointer_expression "*(code *)PTR_free_0003d250" * (cast_expression "(code *)PTR_free_0003d250" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_free_0003d250)(pMVar10);" (call_expression "(*(code *)PTR_free_0003d250)(pMVar10)" (parenthesized_expression "(*(code *)PTR_free_0003d250)" ( (pointer_expression "*(code *)PTR_free_0003d250" * (cast_expression "(code *)PTR_free_0003d250" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar10)" ( identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(pMVar13)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar13)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    uVar9 = 0xd57;\n    do {\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar9 = 0xd57;\n    do {\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    } while( true );\n  }" { (expression_statement "uVar9 = 0xd57;" (assignment_expression "uVar9 = 0xd57" identifier = number_literal) ;) (do_statement "do {\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    } while( true );" do (compound_statement "{\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar9 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar9 = 0xd10;\n    }" { (expression_statement "(**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0);" (call_expression "(**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003d03c)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003d03c" * (pointer_expression "*(code **)PTR_mhd_panic_0003d03c" * (cast_expression "(code **)PTR_mhd_panic_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x62c0)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003d038" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003d02c + -0x62c0" identifier + number_literal) ))) ;) (labeled_statement "LAB_00018bf4:\n      uVar9 = 0xd18;" statement_identifier : (expression_statement "uVar9 = 0xd18;" (assignment_expression "uVar9 = 0xd18" identifier = number_literal) ;)) (labeled_statement "LAB_00018bf8:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);" statement_identifier : (expression_statement "(**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298);" (call_expression "(**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003d03c)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003d03c" * (pointer_expression "*(code **)PTR_mhd_panic_0003d03c" * (cast_expression "(code **)PTR_mhd_panic_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar9,\n                 PTR_DAT_0003d02c + -0x6298)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003d038" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003d02c + -0x6298" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00018c1c:\n      (**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" statement_identifier : (expression_statement "(**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" (call_expression "(**(code **)PTR_mhd_panic_0003d03c)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003d03c)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003d03c" * (pointer_expression "*(code **)PTR_mhd_panic_0003d03c" * (cast_expression "(code **)PTR_mhd_panic_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003d038" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4cfc" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00018c44:\n      uVar9 = 0xd10;" statement_identifier : (expression_statement "uVar9 = 0xd10;" (assignment_expression "uVar9 = 0xd10" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pMVar10 = daemon->cleanup_tail;" (assignment_expression "pMVar10 = daemon->cleanup_tail" identifier = (field_expression "daemon->cleanup_tail" identifier -> field_identifier)) ;) (expression_statement "daemon->at_limit = false;" (assignment_expression "daemon->at_limit = false" (field_expression "daemon->at_limit" identifier -> field_identifier) = false) ;) (expression_statement "daemon->connections = daemon->connections - 1;" (assignment_expression "daemon->connections = daemon->connections - 1" (field_expression "daemon->connections" identifier -> field_identifier) = (binary_expression "daemon->connections - 1" (field_expression "daemon->connections" identifier -> field_identifier) - number_literal)) ;) (goto_statement "goto joined_r0x0001892c;" goto statement_identifier ;) })))
(translation_unit "void FUN_000188d8(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}\n\n" (function_definition "void FUN_000188d8(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}" primitive_type (function_declarator "FUN_000188d8(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (expression_statement "iVar10 = param_1 + 0xac;" (assignment_expression "iVar10 = param_1 + 0xac" identifier = (binary_expression "param_1 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00018c44;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018c44;" goto statement_identifier ;)) (expression_statement "piVar9 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar9 = *(int **)(param_1 + 0x1c)" identifier = (pointer_expression "*(int **)(param_1 + 0x1c)" * (cast_expression "(int **)(param_1 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" statement_identifier : (if_statement "if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" { (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003d280" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003d280" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar8 = 0xd5d;" (assignment_expression "uVar8 = 0xd5d" identifier = number_literal) ;) (goto_statement "goto LAB_00018bf8;" goto statement_identifier ;) }))) (if_statement "if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" if (parenthesized_expression "(piVar9[3] == 0)" ( (binary_expression "piVar9[3] == 0" (subscript_expression "piVar9[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }" { (expression_statement "*(int *)(param_1 + 0x18) = piVar9[2];" (assignment_expression "*(int *)(param_1 + 0x18) = piVar9[2]" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar9[2];" (assignment_expression "iVar2 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar9[3];" (assignment_expression "iVar7 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) goto LAB_00018b14;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018b14;" goto statement_identifier ;)) (labeled_statement "LAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;" statement_identifier : (expression_statement "*(int *)(iVar2 + 0xc) = iVar7;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" else (compound_statement "{\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" { (expression_statement "*(int *)(piVar9[3] + 8) = piVar9[2];" (assignment_expression "*(int *)(piVar9[3] + 8) = piVar9[2]" (pointer_expression "*(int *)(piVar9[3] + 8)" * (cast_expression "(int *)(piVar9[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9[3] + 8)" ( (binary_expression "piVar9[3] + 8" (subscript_expression "piVar9[3]" identifier [ number_literal ]) + number_literal) )))) = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar9[2];" (assignment_expression "iVar2 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar9[3];" (assignment_expression "iVar7 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) goto LAB_00018958;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018958;" goto statement_identifier ;)) (labeled_statement "LAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x1c) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x1c) = iVar7" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;)) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003d280;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003d280" identifier = identifier) ;) (expression_statement "piVar9[2] = 0;" (assignment_expression "piVar9[2] = 0" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9[3] = 0;" (assignment_expression "piVar9[3] = 0" (subscript_expression "piVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar1)(iVar10);" (assignment_expression "iVar2 = (*(code *)puVar1)(iVar10)" identifier = (call_expression "(*(code *)puVar1)(iVar10)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00018bf4;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018bf4;" goto statement_identifier ;)) (if_statement "if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" if (parenthesized_expression "((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0))" ( (binary_expression "(((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)" (parenthesized_expression "(((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0'))" ( (binary_expression "((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')" (parenthesized_expression "((*(uint *)(param_1 + 0xf4) & 4) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf4) & 4) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf4) & 4)" ( (binary_expression "*(uint *)(param_1 + 0xf4) & 4" (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar9 + 0xab) != '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0xab) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0xab)" * (cast_expression "(char *)((int)piVar9 + 0xab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0xab)" ( (binary_expression "(int)piVar9 + 0xab" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)" ( (comma_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0" (assignment_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0)" identifier = (call_expression "(*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0)" (parenthesized_expression "(*(code *)PTR_pthread_join_0003d160)" ( (pointer_expression "*(code *)PTR_pthread_join_0003d160" * (cast_expression "(code *)PTR_pthread_join_0003d160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9[0x16],0)" ( (subscript_expression "piVar9[0x16]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }" { (expression_statement "puVar1 = PTR_free_0003d250;" (assignment_expression "puVar1 = PTR_free_0003d250" identifier = identifier) ;) (if_statement "if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }" if (parenthesized_expression "(piVar9[0x37] != 0)" ( (binary_expression "piVar9[0x37] != 0" (subscript_expression "piVar9[0x37]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }" { (expression_statement "piVar9[0x37] = 0;" (assignment_expression "piVar9[0x37] = 0" (subscript_expression "piVar9[0x37]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0001eb80(piVar9[10]);" (call_expression "FUN_0001eb80(piVar9[10])" identifier (argument_list "(piVar9[10])" ( (subscript_expression "piVar9[10]" identifier [ number_literal ]) ))) ;) (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }" if (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }" { (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "piVar9 + 0xc" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);" (call_expression "FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24])" identifier (argument_list "(param_1,piVar9[0x15],piVar9[0x24])" ( identifier , (subscript_expression "piVar9[0x15]" identifier [ number_literal ]) , (subscript_expression "piVar9[0x24]" identifier [ number_literal ]) ))) ;) (if_statement "if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0xf4) & 0x200) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf4) & 0x200) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf4) & 0x200)" ( (binary_expression "*(uint *)(param_1 + 0xf4) & 0x200" (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }" { (expression_statement "uVar3 = piVar9[0x2c];" (assignment_expression "uVar3 = piVar9[0x2c]" identifier = (subscript_expression "piVar9[0x2c]" identifier [ number_literal ])) ;) (if_statement "if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }" { (if_statement "if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }" if (parenthesized_expression "((int *)piVar9[1] == (int *)0x0)" ( (binary_expression "(int *)piVar9[1] == (int *)0x0" (cast_expression "(int *)piVar9[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }" { (expression_statement "*(int *)(param_1 + 0x20) = *piVar9;" (assignment_expression "*(int *)(param_1 + 0x20) = *piVar9" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          *(int *)piVar9[1] = *piVar9;\n        }" else (compound_statement "{\n          *(int *)piVar9[1] = *piVar9;\n        }" { (expression_statement "*(int *)piVar9[1] = *piVar9;" (assignment_expression "*(int *)piVar9[1] = *piVar9" (pointer_expression "*(int *)piVar9[1]" * (cast_expression "(int *)piVar9[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) = (pointer_expression "*piVar9" * identifier)) ;) }))) (if_statement "if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" if (parenthesized_expression "(*piVar9 == 0)" ( (binary_expression "*piVar9 == 0" (pointer_expression "*piVar9" * identifier) == number_literal) )) (compound_statement "{\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }" { (expression_statement "*(int *)(param_1 + 0x24) = piVar9[1];" (assignment_expression "*(int *)(param_1 + 0x24) = piVar9[1]" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" else (compound_statement "{\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" { (expression_statement "*(int *)(*piVar9 + 4) = piVar9[1];" (assignment_expression "*(int *)(*piVar9 + 4) = piVar9[1]" (pointer_expression "*(int *)(*piVar9 + 4)" * (cast_expression "(int *)(*piVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 4)" ( (binary_expression "*piVar9 + 4" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) }))) (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = piVar9[0x2c] & 0xfffffffb;" (assignment_expression "uVar3 = piVar9[0x2c] & 0xfffffffb" identifier = (binary_expression "piVar9[0x2c] & 0xfffffffb" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "piVar9[0x2c] = uVar3;" (assignment_expression "piVar9[0x2c] = uVar3" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;" if (parenthesized_expression "((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xd0) != -1)" ( (binary_expression "*(int *)(param_1 + 0xd0) != -1" (pointer_expression "*(int *)(param_1 + 0xd0)" * (cast_expression "(int *)(param_1 + 0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)" ( (comma_expression "pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0" (assignment_expression "pcVar13 = (code *)PTR_epoll_ctl_0003d1f8" identifier = (cast_expression "(code *)PTR_epoll_ctl_0003d1f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(uVar3 & 8) != 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) != number_literal)) ))) )) (goto_statement "goto LAB_00018b58;" goto statement_identifier ;)) })) }) (else_clause "else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" else (compound_statement "{\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" { (expression_statement "pcVar13 = *(code **)PTR_DAT_0003d03c;" (assignment_expression "pcVar13 = *(code **)PTR_DAT_0003d03c" identifier = (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);" (call_expression "(*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4d40" identifier + number_literal) ))) ;) (labeled_statement "LAB_00018b58:\n    iVar2 = (*pcVar13)();" statement_identifier : (expression_statement "iVar2 = (*pcVar13)();" (assignment_expression "iVar2 = (*pcVar13)()" identifier = (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }" { (expression_statement "iVar2 = *(int *)PTR_DAT_0003d038;" (assignment_expression "iVar2 = *(int *)PTR_DAT_0003d038" identifier = (pointer_expression "*(int *)PTR_DAT_0003d038" * (cast_expression "(int *)PTR_DAT_0003d038" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar13 = *(code **)PTR_DAT_0003d03c;" (assignment_expression "pcVar13 = *(code **)PTR_DAT_0003d03c" identifier = (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);" (call_expression "(*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" ( identifier , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4d24" identifier + number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xf4);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xf4)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xf4)" * (cast_expression "(uint *)(iVar2 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf4)" ( (binary_expression "iVar2 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar3 & 0x8000;" (assignment_expression "uVar11 = uVar3 & 0x8000" identifier = (binary_expression "uVar3 & 0x8000" identifier & number_literal)) ;) (if_statement "if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }" if (parenthesized_expression "((uVar3 & 0x2000) != 0)" ( (binary_expression "(uVar3 & 0x2000) != 0" (parenthesized_expression "(uVar3 & 0x2000)" ( (binary_expression "uVar3 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }" { (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017778();" (call_expression "FUN_00017778()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = iVar2 + 0xac;" (assignment_expression "iVar7 = iVar2 + 0xac" identifier = (binary_expression "iVar2 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);" (assignment_expression "iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7)" identifier = (call_expression "(**(code **)(pcVar13 + 0x24594))(iVar7)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" ( (pointer_expression "**(code **)(pcVar13 + 0x24594)" * (pointer_expression "*(code **)(pcVar13 + 0x24594)" * (cast_expression "(code **)(pcVar13 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24594)" ( (binary_expression "pcVar13 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "uVar8 = 0x1a2b;" (assignment_expression "uVar8 = 0x1a2b" identifier = number_literal) ;) (if_statement "if (iVar10 != 0) goto LAB_00019098;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019098;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }" { (expression_statement "uVar8 = 0x1a58;" (assignment_expression "uVar8 = 0x1a58" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }" if (parenthesized_expression "(*(int *)(iVar2 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x10) != 0" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }" { (expression_statement "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc)" identifier = (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000190c4;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" else (compound_statement "{\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" { (expression_statement "iVar10 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }" { (expression_statement "iVar5 = *(int *)(iVar10 + 0xdc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xdc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar13 + 0x243b0);" (assignment_expression "iVar12 = *(int *)(pcVar13 + 0x243b0)" identifier = (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_000190c0;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000190c0;" goto statement_identifier ;)) (while_statement "while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }" { (if_statement "if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" if (parenthesized_expression "(*(char *)(iVar5 + 4) == '\0')" ( (binary_expression "*(char *)(iVar5 + 4) == '\0'" (pointer_expression "*(char *)(iVar5 + 4)" * (cast_expression "(char *)(iVar5 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" { (expression_statement "FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);" (call_expression "FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8)" identifier (argument_list "(iVar2,iVar12 + -0x4ca4,uVar8)" ( identifier , (binary_expression "iVar12 + -0x4ca4" identifier + number_literal) , identifier ))) ;) (expression_statement "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" * (cast_expression "(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xdc) + 4)" ( (binary_expression "*(int *)(iVar10 + 0xdc) + 4" (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar10 + 0xe8) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xe8) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xe8)" * (cast_expression "(undefined1 *)(iVar10 + 0xe8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" else (compound_statement "{\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" { (expression_statement "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" * (cast_expression "(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xdc) + 4)" ( (binary_expression "*(int *)(iVar10 + 0xdc) + 4" (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar10 + 0xe8) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xe8) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xe8)" * (cast_expression "(undefined1 *)(iVar10 + 0xe8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = *(int *)(iVar10 + 0xdc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xdc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xdc)" * (cast_expression "(int *)(iVar10 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xdc)" ( (binary_expression "iVar10 + 0xdc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = 0x1a37;" (assignment_expression "uVar8 = 0x1a37" identifier = number_literal) ;) (if_statement "if (iVar5 == 0) goto LAB_000190c0;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000190c0;" goto statement_identifier ;)) })) })) }))) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }" { (do_statement "do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);" do (compound_statement "{\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        }" { (expression_statement "(**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);" (call_expression "(**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2)" (parenthesized_expression "(**(code **)(pcVar13 + 0x244b8))" ( (pointer_expression "**(code **)(pcVar13 + 0x244b8)" * (pointer_expression "*(code **)(pcVar13 + 0x244b8)" * (cast_expression "(code **)(pcVar13 + 0x244b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x244b8)" ( (binary_expression "pcVar13 + 0x244b8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar10 + 0xa4),2)" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xa4)" * (cast_expression "(undefined4 *)(iVar10 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xa4)" ( (binary_expression "iVar10 + 0xa4" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }" { (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }" while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }" { (while_statement "while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }" while (parenthesized_expression "(pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0')" ( (comma_expression "pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0'" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) , (binary_expression "*(char *)(iVar10 + 0xab) != '\0'" (pointer_expression "*(char *)(iVar10 + 0xab)" * (cast_expression "(char *)(iVar10 + 0xab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xab)" ( (binary_expression "iVar10 + 0xab" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }" { (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_00018e1c;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e1c;" goto statement_identifier ;)) })) (expression_statement "iVar5 = (*pcVar14)(iVar7);" (assignment_expression "iVar5 = (*pcVar14)(iVar7)" identifier = (call_expression "(*pcVar14)(iVar7)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }" { (expression_statement "uVar8 = 0x1a6f;" (assignment_expression "uVar8 = 0x1a6f" identifier = number_literal) ;) (goto_statement "goto LAB_00018f34;" goto statement_identifier ;) })) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0)" identifier = (call_expression "(**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0)" (parenthesized_expression "(**(code **)(pcVar13 + 0x244e4))" ( (pointer_expression "**(code **)(pcVar13 + 0x244e4)" * (pointer_expression "*(code **)(pcVar13 + 0x244e4)" * (cast_expression "(code **)(pcVar13 + 0x244e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x244e4)" ( (binary_expression "pcVar13 + 0x244e4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar10 + 0x58),0)" ( (pointer_expression "*(undefined4 *)(iVar10 + 0x58)" * (cast_expression "(undefined4 *)(iVar10 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }" { (expression_statement "uVar8 = 0x1a71;" (assignment_expression "uVar8 = 0x1a71" identifier = number_literal) ;) (labeled_statement "LAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40)" ( (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x4d40" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_00019094:\n              uVar8 = 0x1a72;" statement_identifier : (expression_statement "uVar8 = 0x1a72;" (assignment_expression "uVar8 = 0x1a72" identifier = number_literal) ;)) (goto_statement "goto LAB_00019098;" goto statement_identifier ;) })) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7)" identifier = (call_expression "(**(code **)(pcVar13 + 0x24594))(iVar7)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" ( (pointer_expression "**(code **)(pcVar13 + 0x24594)" * (pointer_expression "*(code **)(pcVar13 + 0x24594)" * (cast_expression "(code **)(pcVar13 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24594)" ( (binary_expression "pcVar13 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) goto LAB_00019094;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019094;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(iVar10 + 0xab) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xab) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xab)" * (cast_expression "(undefined1 *)(iVar10 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xab)" ( (binary_expression "iVar10 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) })) })) })) (labeled_statement "LAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);" statement_identifier : (expression_statement "iVar5 = (*pcVar14)(iVar7);" (assignment_expression "iVar5 = (*pcVar14)(iVar7)" identifier = (call_expression "(*pcVar14)(iVar7)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar7)" ( identifier )))) ;)) (expression_statement "uVar8 = 0x1a7c;" (assignment_expression "uVar8 = 0x1a7c" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) goto LAB_00018f34;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018f34;" goto statement_identifier ;)) (if_statement "if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }" { (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" * (cast_expression "(undefined1 *)(iVar2 + 0xdf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xdf)" ( (binary_expression "iVar2 + 0xdf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017778(iVar2);" (call_expression "FUN_00017778(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (labeled_statement "LAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);" statement_identifier : (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;)) (while_statement "while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }" { (if_statement "if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_000188d8(iVar2);\n          return;\n        }" { (expression_statement "FUN_000188d8(iVar2);" (call_expression "FUN_000188d8(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;" if (parenthesized_expression "(((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0'))" ( (binary_expression "((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')" (parenthesized_expression "((*(uint *)(iVar2 + 0xf4) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar2 + 0xf4) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar2 + 0xf4) & 4)" ( (binary_expression "*(uint *)(iVar2 + 0xf4) & 4" (pointer_expression "*(uint *)(iVar2 + 0xf4)" * (cast_expression "(uint *)(iVar2 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf4)" ( (binary_expression "iVar2 + 0xf4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')" ( (comma_expression "uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0'" (assignment_expression "uVar8 = 0x1a91" identifier = number_literal) , (binary_expression "*(char *)(iVar10 + 0xab) == '\0'" (pointer_expression "*(char *)(iVar10 + 0xab)" * (cast_expression "(char *)(iVar10 + 0xab)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xab)" ( (binary_expression "iVar10 + 0xab" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00019070;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(iVar10 + 0x18);" (assignment_expression "iVar7 = *(int *)(iVar10 + 0x18)" identifier = (pointer_expression "*(int *)(iVar10 + 0x18)" * (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;" if (parenthesized_expression "((*(uint *)(iVar7 + 0xf4) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar7 + 0xf4) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar7 + 0xf4) & 4)" ( (binary_expression "*(uint *)(iVar7 + 0xf4) & 4" (pointer_expression "*(uint *)(iVar7 + 0xf4)" * (cast_expression "(uint *)(iVar7 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xf4)" ( (binary_expression "iVar7 + 0xf4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00013f40(iVar10);" (call_expression "FUN_00013f40(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "uVar11 = iVar7 + 0xac;" (assignment_expression "uVar11 = iVar7 + 0xac" identifier = (binary_expression "iVar7 + 0xac" identifier + number_literal)) ;) (expression_statement "FUN_00013f84(iVar10,3);" (call_expression "FUN_00013f84(iVar10,3)" identifier (argument_list "(iVar10,3)" ( identifier , number_literal ))) ;) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11)" identifier = (call_expression "(**(code **)(pcVar13 + 0x24594))(uVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" ( (pointer_expression "**(code **)(pcVar13 + 0x24594)" * (pointer_expression "*(code **)(pcVar13 + 0x24594)" * (cast_expression "(code **)(pcVar13 + 0x24594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24594)" ( (binary_expression "pcVar13 + 0x24594" identifier + number_literal) ))))) )) (argument_list "(uVar11)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" { (do_statement "do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );" do (compound_statement "{\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        }" { (expression_statement "uVar8 = 0x1274;" (assignment_expression "uVar8 = 0x1274" identifier = number_literal) ;) (labeled_statement "LAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0)" ( (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x62c0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_000190c0:\n          uVar8 = 0x1a37;" statement_identifier : (expression_statement "uVar8 = 0x1a37;" (assignment_expression "uVar8 = 0x1a37" identifier = number_literal) ;)) (expression_statement "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc)" identifier = (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4)" ( (pointer_expression "*puVar6" * identifier) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x4ce4" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar5 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x14)" identifier = (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x10);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" * (cast_expression "(undefined4 *)(iVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" if (parenthesized_expression "(*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec))" ( (binary_expression "*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)" (pointer_expression "*(int *)(iVar10 + 0x98)" * (cast_expression "(int *)(iVar10 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x98)" ( (binary_expression "iVar10 + 0x98" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar7 + 0xec)" * (cast_expression "(int *)(iVar7 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xec)" ( (binary_expression "iVar7 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }" { (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar7 + 0x30) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar5 + 0x10) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x10)" identifier = (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }" { (expression_statement "*(undefined4 *)(iVar7 + 0x34) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x34) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x34)" * (cast_expression "(undefined4 *)(iVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00018ecc;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" else (compound_statement "{\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" { (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar7 + 0x38) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x38) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x38)" * (cast_expression "(undefined4 *)(iVar7 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" { (expression_statement "*(undefined4 *)(iVar5 + 0x10) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x10)" identifier = (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00018f58;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f58;" goto statement_identifier ;)) }))) (expression_statement "*(undefined4 *)(iVar5 + 0x14) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x14) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" * (cast_expression "(undefined4 *)(iVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar5 == 0) goto LAB_00018f70;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f70;" goto statement_identifier ;)) (labeled_statement "LAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar5 + 8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 8) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00018f80;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018f80;" goto statement_identifier ;)) (labeled_statement "LAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar5 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18)" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;" if (parenthesized_expression "(*(int *)(iVar7 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x1c) == 0" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00018fa0;" goto statement_identifier ;)) (do_statement "do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );" do (compound_statement "{\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      }" { (expression_statement "*(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;" (assignment_expression "*(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10" (pointer_expression "*(int *)(*(int *)(iVar7 + 0x18) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar7 + 0x18) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 0x18) + 0xc)" ( (binary_expression "*(int *)(iVar7 + 0x18) + 0xc" (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (while_statement "while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }" { (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x24604)" * (cast_expression "(code **)(pcVar13 + 0x24604)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x24604)" ( (binary_expression "pcVar13 + 0x24604" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar7 + 0x18) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x18) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = (*pcVar14)(uVar11);" (assignment_expression "iVar5 = (*pcVar14)(uVar11)" identifier = (call_expression "(*pcVar14)(uVar11)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(uVar11)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00018e38;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018e38;" goto statement_identifier ;)) (expression_statement "uVar8 = 0x1287;" (assignment_expression "uVar8 = 0x1287" identifier = number_literal) ;) (labeled_statement "LAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243c0)" ( (binary_expression "pcVar13 + 0x243c0" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298)" ( (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" * (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" * (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x243bc)" ( (binary_expression "pcVar13 + 0x243bc" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x6298" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" * (cast_expression "(int *)(pcVar13 + 0x243b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x243b0)" ( (binary_expression "pcVar13 + 0x243b0" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uVar8 = extraout_v1;" (assignment_expression "uVar8 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar7 + 0x3c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x3c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x3c)" * (cast_expression "(undefined4 *)(iVar7 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(iVar10 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" * (cast_expression "(undefined4 *)(iVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) goto LAB_00018ee0;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018ee0;" goto statement_identifier ;)) (labeled_statement "LAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar7 + 8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" identifier = (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) goto LAB_00018ef0;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018ef0;" goto statement_identifier ;)) (labeled_statement "LAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18)" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar7 + 0x1c) != 0) break;" if (parenthesized_expression "(*(int *)(iVar7 + 0x1c) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x1c) != 0" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;" statement_identifier : (expression_statement "*(int *)(iVar7 + 0x1c) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x1c) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;" (assignment_expression "piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) = (binary_expression "piVar9[0x2c] & 0xfffffff7" (subscript_expression "piVar9[0x2c]" identifier [ number_literal ]) & number_literal)) ;) }))) (if_statement "if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }" if (parenthesized_expression "(piVar9[9] != 0)" ( (binary_expression "piVar9[9] != 0" (subscript_expression "piVar9[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }" { (expression_statement "(*(code *)PTR_MHD_destroy_response_0003d234)();" (call_expression "(*(code *)PTR_MHD_destroy_response_0003d234)()" (parenthesized_expression "(*(code *)PTR_MHD_destroy_response_0003d234)" ( (pointer_expression "*(code *)PTR_MHD_destroy_response_0003d234" * (cast_expression "(code *)PTR_MHD_destroy_response_0003d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar9[9] = 0;" (assignment_expression "piVar9[9] = 0" (subscript_expression "piVar9[9]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;" if (parenthesized_expression "(((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9))" ( (binary_expression "((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" (parenthesized_expression "((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0))" ( (binary_expression "(piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" (parenthesized_expression "(piVar9[0x29] != -1)" ( (binary_expression "piVar9[0x29] != -1" (subscript_expression "piVar9[0x29]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" ( (comma_expression "iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_close_0003d128)()" identifier = (call_expression "(*(code *)PTR_close_0003d128)()" (parenthesized_expression "(*(code *)PTR_close_0003d128)" ( (pointer_expression "*(code *)PTR_close_0003d128" * (cast_expression "(code *)PTR_close_0003d128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003d198)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003d198)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003d198)" ( (pointer_expression "*(code *)PTR___errno_location_0003d198" * (cast_expression "(code *)PTR___errno_location_0003d198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_00018c1c;" goto statement_identifier ;)) (if_statement "if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }" if (parenthesized_expression "(piVar9[0x15] != 0)" ( (binary_expression "piVar9[0x15] != 0" (subscript_expression "piVar9[0x15]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_0003d250)();\n  }" { (expression_statement "(*(code *)PTR_free_0003d250)();" (call_expression "(*(code *)PTR_free_0003d250)()" (parenthesized_expression "(*(code *)PTR_free_0003d250)" ( (pointer_expression "*(code *)PTR_free_0003d250" * (cast_expression "(code *)PTR_free_0003d250" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_free_0003d250)(piVar9);" (call_expression "(*(code *)PTR_free_0003d250)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_0003d250)" ( (pointer_expression "*(code *)PTR_free_0003d250" * (cast_expression "(code *)PTR_free_0003d250" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }" { (expression_statement "uVar8 = 0xd57;" (assignment_expression "uVar8 = 0xd57" identifier = number_literal) ;) (do_statement "do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );" do (compound_statement "{\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    }" { (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" ( (pointer_expression "**(code **)PTR_DAT_0003d03c" * (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003d02c + -0x62c0" identifier + number_literal) ))) ;) (labeled_statement "LAB_00018bf4:\n      uVar8 = 0xd18;" statement_identifier : (expression_statement "uVar8 = 0xd18;" (assignment_expression "uVar8 = 0xd18" identifier = number_literal) ;)) (labeled_statement "LAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" ( (pointer_expression "**(code **)PTR_DAT_0003d03c" * (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003d02c + -0x6298" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" ( (pointer_expression "**(code **)PTR_DAT_0003d03c" * (pointer_expression "*(code **)PTR_DAT_0003d03c" * (cast_expression "(code **)PTR_DAT_0003d03c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" * (cast_expression "(undefined4 *)PTR_DAT_0003d038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003d02c + -0x51b0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003d02c + -0x4cfc" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00018c44:\n      uVar8 = 0xd10;" statement_identifier : (expression_statement "uVar8 = 0xd10;" (assignment_expression "uVar8 = 0xd10" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "piVar9 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar9 = *(int **)(param_1 + 0x1c)" identifier = (pointer_expression "*(int **)(param_1 + 0x1c)" * (cast_expression "(int **)(param_1 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0xde) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xde) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xde)" * (cast_expression "(undefined1 *)(param_1 + 0xde)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xde)" ( (binary_expression "param_1 + 0xde" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;" (assignment_expression "*(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1" (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0xe4) + -1" (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto joined_r0x0001892c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (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) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (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 IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_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 (pointer_expression * IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (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 IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT , (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) ))))) ;) (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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 = (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) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (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 (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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) )) (break_statement break ;)) (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) )) (goto_statement goto statement_identifier ;)) })) })) }))) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) ))))) ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (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) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) )))) == (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (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) )))) = IDENT) ;) }))) (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (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) )))) = IDENT) ;) }))) (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 = (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) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (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 = (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 IDENT + LIT) )))) = LIT) ;) (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 IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (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 = (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (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 = (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) })) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_000188d8(int param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}" (primitive_type "void") (function_declarator "FUN_000188d8(int param_1)" (identifier "FUN_000188d8") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 extraout_v1;\n  undefined4 uVar8;\n  int *piVar9;\n  int iVar10;\n  uint uVar11;\n  int iVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  iVar10 = param_1 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) goto LAB_00018c44;\n  piVar9 = *(int **)(param_1 + 0x1c);\njoined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }\n  if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }\n  puVar1 = PTR_pthread_mutex_unlock_0003d280;\n  piVar9[2] = 0;\n  piVar9[3] = 0;\n  iVar2 = (*(code *)puVar1)(iVar10);\n  if (iVar2 != 0) goto LAB_00018bf4;\n  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }\n  if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }\n  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;\n  if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }\n  (*(code *)PTR_free_0003d250)(piVar9);\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);\n  if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }\n  piVar9 = *(int **)(param_1 + 0x1c);\n  *(undefined1 *)(param_1 + 0xde) = 0;\n  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;\n  goto joined_r0x0001892c;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 extraout_v1;" (type_identifier "undefined4") (identifier "extraout_v1") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (expression_statement "iVar10 = param_1 + 0xac;" (assignment_expression "iVar10 = param_1 + 0xac" (identifier "iVar10") (= "=") (binary_expression "param_1 + 0xac" (identifier "param_1") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" (* "*") (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_lock_0003d210"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_00018c44;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018c44;" (goto "goto") (statement_identifier "LAB_00018c44") (; ";"))) (expression_statement "piVar9 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar9 = *(int **)(param_1 + 0x1c)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(param_1 + 0x1c)" (* "*") (cast_expression "(int **)(param_1 + 0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (labeled_statement "joined_r0x0001892c:\n  if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" (statement_identifier "joined_r0x0001892c") (: ":") (if_statement "if (piVar9 == (int *)0x0) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);\n    if (iVar2 == 0) {\n      return;\n    }\n    uVar8 = 0xd5d;\n    goto LAB_00018bf8;\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003d280)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003d280" (* "*") (cast_expression "(code *)PTR_pthread_mutex_unlock_0003d280" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_unlock_0003d280"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar8 = 0xd5d;" (assignment_expression "uVar8 = 0xd5d" (identifier "uVar8") (= "=") (number_literal "0xd5d")) (; ";")) (goto_statement "goto LAB_00018bf8;" (goto "goto") (statement_identifier "LAB_00018bf8") (; ";")) (} "}")))) (if_statement "if (piVar9[3] == 0) {\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }\n  else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" (if "if") (parenthesized_expression "(piVar9[3] == 0)" (( "(") (binary_expression "piVar9[3] == 0" (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(param_1 + 0x18) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 == 0) goto LAB_00018b14;\nLAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x18) = piVar9[2];" (assignment_expression "*(int *)(param_1 + 0x18) = piVar9[2]" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar2 = piVar9[2];" (assignment_expression "iVar2 = piVar9[2]" (identifier "iVar2") (= "=") (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar9[3];" (assignment_expression "iVar7 = piVar9[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_00018b14;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018b14;" (goto "goto") (statement_identifier "LAB_00018b14") (; ";"))) (labeled_statement "LAB_00018958:\n    *(int *)(iVar2 + 0xc) = iVar7;" (statement_identifier "LAB_00018958") (: ":") (expression_statement "*(int *)(iVar2 + 0xc) = iVar7;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar7")) (; ";"))) (} "}")) (else_clause "else {\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" (else "else") (compound_statement "{\n    *(int *)(piVar9[3] + 8) = piVar9[2];\n    iVar2 = piVar9[2];\n    iVar7 = piVar9[3];\n    if (iVar2 != 0) goto LAB_00018958;\nLAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;\n  }" ({ "{") (expression_statement "*(int *)(piVar9[3] + 8) = piVar9[2];" (assignment_expression "*(int *)(piVar9[3] + 8) = piVar9[2]" (pointer_expression "*(int *)(piVar9[3] + 8)" (* "*") (cast_expression "(int *)(piVar9[3] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9[3] + 8)" (( "(") (binary_expression "piVar9[3] + 8" (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar2 = piVar9[2];" (assignment_expression "iVar2 = piVar9[2]" (identifier "iVar2") (= "=") (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar9[3];" (assignment_expression "iVar7 = piVar9[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_00018958;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018958;" (goto "goto") (statement_identifier "LAB_00018958") (; ";"))) (labeled_statement "LAB_00018b14:\n    *(int *)(param_1 + 0x1c) = iVar7;" (statement_identifier "LAB_00018b14") (: ":") (expression_statement "*(int *)(param_1 + 0x1c) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x1c) = iVar7" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar7")) (; ";"))) (} "}")))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003d280;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003d280" (identifier "puVar1") (= "=") (identifier "PTR_pthread_mutex_unlock_0003d280")) (; ";")) (expression_statement "piVar9[2] = 0;" (assignment_expression "piVar9[2] = 0" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9[3] = 0;" (assignment_expression "piVar9[3] = 0" (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = (*(code *)puVar1)(iVar10);" (assignment_expression "iVar2 = (*(code *)puVar1)(iVar10)" (identifier "iVar2") (= "=") (call_expression "(*(code *)puVar1)(iVar10)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_00018bf4;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018bf4;" (goto "goto") (statement_identifier "LAB_00018bf4") (; ";"))) (if_statement "if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }\n  else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" (if "if") (parenthesized_expression "((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0))" (( "(") (binary_expression "(((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||\n     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)" (parenthesized_expression "(((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0'))" (( "(") (binary_expression "((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')" (parenthesized_expression "((*(uint *)(param_1 + 0xf4) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0xf4) & 4) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf4) & 4)" (( "(") (binary_expression "*(uint *)(param_1 + 0xf4) & 4" (pointer_expression "*(uint *)(param_1 + 0xf4)" (* "*") (cast_expression "(uint *)(param_1 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)piVar9 + 0xab) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0xab) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0xab)" (* "*") (cast_expression "(char *)((int)piVar9 + 0xab)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0xab)" (( "(") (binary_expression "(int)piVar9 + 0xab" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0xab")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0" (assignment_expression "iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0)" (parenthesized_expression "(*(code *)PTR_pthread_join_0003d160)" (( "(") (pointer_expression "*(code *)PTR_pthread_join_0003d160" (* "*") (cast_expression "(code *)PTR_pthread_join_0003d160" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_join_0003d160"))) () ")")) (argument_list "(piVar9[0x16],0)" (( "(") (subscript_expression "piVar9[0x16]" (identifier "piVar9") ([ "[") (number_literal "0x16") (] "]")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    puVar1 = PTR_free_0003d250;\n    if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }\n    FUN_0001eb80(piVar9[10]);\n    if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }\n    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);\n    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }\n  }" ({ "{") (expression_statement "puVar1 = PTR_free_0003d250;" (assignment_expression "puVar1 = PTR_free_0003d250" (identifier "puVar1") (= "=") (identifier "PTR_free_0003d250")) (; ";")) (if_statement "if (piVar9[0x37] != 0) {\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }" (if "if") (parenthesized_expression "(piVar9[0x37] != 0)" (( "(") (binary_expression "piVar9[0x37] != 0" (subscript_expression "piVar9[0x37]" (identifier "piVar9") ([ "[") (number_literal "0x37") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar9[0x37] = 0;\n      (*(code *)puVar1)();\n    }" ({ "{") (expression_statement "piVar9[0x37] = 0;" (assignment_expression "piVar9[0x37] = 0" (subscript_expression "piVar9[0x37]" (identifier "piVar9") ([ "[") (number_literal "0x37") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar1)();" (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0001eb80(piVar9[10]);" (call_expression "FUN_0001eb80(piVar9[10])" (identifier "FUN_0001eb80") (argument_list "(piVar9[10])" (( "(") (subscript_expression "piVar9[10]" (identifier "piVar9") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }" (if "if") (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" (( "(") (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);\n    }" ({ "{") (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" (( "(") (pointer_expression "**(code **)(param_1 + 0x50)" (* "*") (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (identifier "piVar9") (, ",") (binary_expression "piVar9 + 0xc" (identifier "piVar9") (+ "+") (number_literal "0xc")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);" (call_expression "FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24])" (identifier "FUN_0001871c") (argument_list "(param_1,piVar9[0x15],piVar9[0x24])" (( "(") (identifier "param_1") (, ",") (subscript_expression "piVar9[0x15]" (identifier "piVar9") ([ "[") (number_literal "0x15") (] "]")) (, ",") (subscript_expression "piVar9[0x24]" (identifier "piVar9") ([ "[") (number_literal "0x24") (] "]")) () ")"))) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0xf4) & 0x200) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0xf4) & 0x200) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf4) & 0x200)" (( "(") (binary_expression "*(uint *)(param_1 + 0xf4) & 0x200" (pointer_expression "*(uint *)(param_1 + 0xf4)" (* "*") (cast_expression "(uint *)(param_1 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")")))) (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = piVar9[0x2c];\n      if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }\n      if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;\n    }" ({ "{") (expression_statement "uVar3 = piVar9[0x2c];" (assignment_expression "uVar3 = piVar9[0x2c]" (identifier "uVar3") (= "=") (subscript_expression "piVar9[0x2c]" (identifier "piVar9") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (if_statement "if ((uVar3 & 4) != 0) {\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }" (if "if") (parenthesized_expression "((uVar3 & 4) != 0)" (( "(") (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" (( "(") (binary_expression "uVar3 & 4" (identifier "uVar3") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }\n        if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        uVar3 = piVar9[0x2c] & 0xfffffffb;\n        piVar9[0x2c] = uVar3;\n      }" ({ "{") (if_statement "if ((int *)piVar9[1] == (int *)0x0) {\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }\n        else {\n          *(int *)piVar9[1] = *piVar9;\n        }" (if "if") (parenthesized_expression "((int *)piVar9[1] == (int *)0x0)" (( "(") (binary_expression "(int *)piVar9[1] == (int *)0x0" (cast_expression "(int *)piVar9[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(int *)(param_1 + 0x20) = *piVar9;\n        }" ({ "{") (expression_statement "*(int *)(param_1 + 0x20) = *piVar9;" (assignment_expression "*(int *)(param_1 + 0x20) = *piVar9" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}")) (else_clause "else {\n          *(int *)piVar9[1] = *piVar9;\n        }" (else "else") (compound_statement "{\n          *(int *)piVar9[1] = *piVar9;\n        }" ({ "{") (expression_statement "*(int *)piVar9[1] = *piVar9;" (assignment_expression "*(int *)piVar9[1] = *piVar9" (pointer_expression "*(int *)piVar9[1]" (* "*") (cast_expression "(int *)piVar9[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")))) (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}")))) (if_statement "if (*piVar9 == 0) {\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }\n        else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" (if "if") (parenthesized_expression "(*piVar9 == 0)" (( "(") (binary_expression "*piVar9 == 0" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(param_1 + 0x24) = piVar9[1];\n        }" ({ "{") (expression_statement "*(int *)(param_1 + 0x24) = piVar9[1];" (assignment_expression "*(int *)(param_1 + 0x24) = piVar9[1]" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" (else "else") (compound_statement "{\n          *(int *)(*piVar9 + 4) = piVar9[1];\n        }" ({ "{") (expression_statement "*(int *)(*piVar9 + 4) = piVar9[1];" (assignment_expression "*(int *)(*piVar9 + 4) = piVar9[1]" (pointer_expression "*(int *)(*piVar9 + 4)" (* "*") (cast_expression "(int *)(*piVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + 4)" (( "(") (binary_expression "*piVar9 + 4" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = piVar9[0x2c] & 0xfffffffb;" (assignment_expression "uVar3 = piVar9[0x2c] & 0xfffffffb" (identifier "uVar3") (= "=") (binary_expression "piVar9[0x2c] & 0xfffffffb" (subscript_expression "piVar9[0x2c]" (identifier "piVar9") ([ "[") (number_literal "0x2c") (] "]")) (& "&") (number_literal "0xfffffffb"))) (; ";")) (expression_statement "piVar9[0x2c] = uVar3;" (assignment_expression "piVar9[0x2c] = uVar3" (subscript_expression "piVar9[0x2c]" (identifier "piVar9") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (if_statement "if ((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0xd0) != -1) &&\n         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xd0) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0xd0) != -1" (pointer_expression "*(int *)(param_1 + 0xd0)" (* "*") (cast_expression "(int *)(param_1 + 0xd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)" (( "(") (comma_expression "pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0" (assignment_expression "pcVar13 = (code *)PTR_epoll_ctl_0003d1f8" (identifier "pcVar13") (= "=") (cast_expression "(code *)PTR_epoll_ctl_0003d1f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_epoll_ctl_0003d1f8"))) (, ",") (binary_expression "(uVar3 & 8) != 0" (parenthesized_expression "(uVar3 & 8)" (( "(") (binary_expression "uVar3 & 8" (identifier "uVar3") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00018b58;" (goto "goto") (statement_identifier "LAB_00018b58") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" (else "else") (compound_statement "{\n    pcVar13 = *(code **)PTR_DAT_0003d03c;\n    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);\nLAB_00018b58:\n    iVar2 = (*pcVar13)();\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }\n    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;\n  }" ({ "{") (expression_statement "pcVar13 = *(code **)PTR_DAT_0003d03c;" (assignment_expression "pcVar13 = *(code **)PTR_DAT_0003d03c" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)PTR_DAT_0003d03c" (* "*") (cast_expression "(code **)PTR_DAT_0003d03c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003d03c")))) (; ";")) (expression_statement "(*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40);" (call_expression "(*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,\n               PTR_DAT_0003d02c + -0x4d40)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003d038" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003d038"))) (, ",") (binary_expression "PTR_DAT_0003d02c + -0x51b0" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x51b0")) (, ",") (number_literal "0xd1c") (, ",") (binary_expression "PTR_DAT_0003d02c + -0x4d40" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x4d40")) () ")"))) (; ";")) (labeled_statement "LAB_00018b58:\n    iVar2 = (*pcVar13)();" (statement_identifier "LAB_00018b58") (: ":") (expression_statement "iVar2 = (*pcVar13)();" (assignment_expression "iVar2 = (*pcVar13)()" (identifier "iVar2") (= "=") (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = *(int *)PTR_DAT_0003d038;\n      pcVar13 = *(code **)PTR_DAT_0003d03c;\n      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);\n      uVar3 = *(uint *)(iVar2 + 0xf4);\n      uVar11 = uVar3 & 0x8000;\n      if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }\n      iVar7 = iVar2 + 0xac;\n      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n      uVar8 = 0x1a2b;\n      if (iVar10 != 0) goto LAB_00019098;\n      if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }\n      iVar10 = *(int *)(iVar2 + 0xc);\n      pcVar14 = *(code **)(pcVar13 + 0x24604);\n      if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }\nLAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);\n      uVar8 = 0x1a7c;\n      if (iVar5 != 0) goto LAB_00018f34;\n      if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }\nLAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);\n      while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }\n      uVar11 = iVar7 + 0xac;\n      FUN_00013f84(iVar10,3);\n      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);\n      if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }\n      iVar5 = *(int *)(iVar10 + 0x14);\n      uVar8 = *(undefined4 *)(iVar10 + 0x10);\n      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }\n      *(undefined4 *)(iVar5 + 0x14) = uVar8;\nLAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);\n      uVar8 = *(undefined4 *)(iVar10 + 8);\n      *(undefined4 *)(iVar10 + 0x10) = 0;\n      *(undefined4 *)(iVar10 + 0x14) = 0;\n      if (iVar5 == 0) goto LAB_00018f70;\nLAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;\n      iVar5 = *(int *)(iVar10 + 8);\n      uVar8 = *(undefined4 *)(iVar10 + 0xc);\n      if (iVar5 == 0) goto LAB_00018f80;\nLAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;\n      *(undefined4 *)(iVar10 + 8) = 0;\n      *(undefined4 *)(iVar10 + 0xc) = 0;\n      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;\n      do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );\n    }" ({ "{") (expression_statement "iVar2 = *(int *)PTR_DAT_0003d038;" (assignment_expression "iVar2 = *(int *)PTR_DAT_0003d038" (identifier "iVar2") (= "=") (pointer_expression "*(int *)PTR_DAT_0003d038" (* "*") (cast_expression "(int *)PTR_DAT_0003d038" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003d038")))) (; ";")) (expression_statement "pcVar13 = *(code **)PTR_DAT_0003d03c;" (assignment_expression "pcVar13 = *(code **)PTR_DAT_0003d03c" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)PTR_DAT_0003d03c" (* "*") (cast_expression "(code **)PTR_DAT_0003d03c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003d03c")))) (; ";")) (expression_statement "(*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);" (call_expression "(*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24)" (( "(") (identifier "iVar2") (, ",") (binary_expression "PTR_DAT_0003d02c + -0x51b0" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x51b0")) (, ",") (number_literal "0xd46") (, ",") (binary_expression "PTR_DAT_0003d02c + -0x4d24" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x4d24")) () ")"))) (; ";")) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xf4);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xf4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar2 + 0xf4)" (* "*") (cast_expression "(uint *)(iVar2 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xf4)" (( "(") (binary_expression "iVar2 + 0xf4" (identifier "iVar2") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "uVar11 = uVar3 & 0x8000;" (assignment_expression "uVar11 = uVar3 & 0x8000" (identifier "uVar11") (= "=") (binary_expression "uVar3 & 0x8000" (identifier "uVar3") (& "&") (number_literal "0x8000"))) (; ";")) (if_statement "if ((uVar3 & 0x2000) != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }" (if "if") (parenthesized_expression "((uVar3 & 0x2000) != 0)" (( "(") (binary_expression "(uVar3 & 0x2000) != 0" (parenthesized_expression "(uVar3 & 0x2000)" (( "(") (binary_expression "uVar3 & 0x2000" (identifier "uVar3") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778();\n      }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xdf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xdf)" (( "(") (binary_expression "iVar2 + 0xdf" (identifier "iVar2") (+ "+") (number_literal "0xdf")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00017778();" (call_expression "FUN_00017778()" (identifier "FUN_00017778") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar2 + 0xac;" (assignment_expression "iVar7 = iVar2 + 0xac" (identifier "iVar7") (= "=") (binary_expression "iVar2 + 0xac" (identifier "iVar2") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);" (assignment_expression "iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcVar13 + 0x24594))(iVar7)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0x24594)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0x24594)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24594)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24594)" (( "(") (binary_expression "pcVar13 + 0x24594" (identifier "pcVar13") (+ "+") (number_literal "0x24594")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "uVar8 = 0x1a2b;" (assignment_expression "uVar8 = 0x1a2b" (identifier "uVar8") (= "=") (number_literal "0x1a2b")) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_00019098;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019098;" (goto "goto") (statement_identifier "LAB_00019098") (; ";"))) (if_statement "if (uVar11 == 0) {\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }\n      else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = 0x1a58;\n        if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }\n      }" ({ "{") (expression_statement "uVar8 = 0x1a58;" (assignment_expression "uVar8 = 0x1a58" (identifier "uVar8") (= "=") (number_literal "0x1a58")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x10) != 0) {\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x10) != 0" (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\n          goto LAB_000190c4;\n        }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243bc)" (( "(") (binary_expression "pcVar13 + 0x243bc" (identifier "pcVar13") (+ "+") (number_literal "0x243bc")) () ")"))))) (; ";")) (goto_statement "goto LAB_000190c4;" (goto "goto") (statement_identifier "LAB_000190c4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar10 = *(int *)(iVar2 + 0x14);\n        if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar10 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0x14)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar10 != 0) {\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = *(int *)(iVar10 + 0xdc);\n          iVar12 = *(int *)(pcVar13 + 0x243b0);\n          if (iVar5 == 0) goto LAB_000190c0;\n          while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }\n        }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar10 + 0xdc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xdc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0xdc)" (* "*") (cast_expression "(int *)(iVar10 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xdc)" (( "(") (binary_expression "iVar10 + 0xdc" (identifier "iVar10") (+ "+") (number_literal "0xdc")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar13 + 0x243b0);" (assignment_expression "iVar12 = *(int *)(pcVar13 + 0x243b0)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_000190c0;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000190c0;" (goto "goto") (statement_identifier "LAB_000190c0") (; ";"))) (while_statement "while( true ) {\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            if (iVar10 == 0) break;\n            iVar5 = *(int *)(iVar10 + 0xdc);\n            uVar8 = 0x1a37;\n            if (iVar5 == 0) goto LAB_000190c0;\n          }" ({ "{") (if_statement "if (*(char *)(iVar5 + 4) == '\0') {\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }\n            else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 4) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 4) == '\0'" (pointer_expression "*(char *)(iVar5 + 4)" (* "*") (cast_expression "(char *)(iVar5 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" ({ "{") (expression_statement "FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);" (call_expression "FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8)" (identifier "FUN_0001e5b0") (argument_list "(iVar2,iVar12 + -0x4ca4,uVar8)" (( "(") (identifier "iVar2") (, ",") (binary_expression "iVar12 + -0x4ca4" (identifier "iVar12") (+ "+") (number_literal "-0x4ca4")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" (* "*") (cast_expression "(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0xdc) + 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0xdc) + 4" (pointer_expression "*(int *)(iVar10 + 0xdc)" (* "*") (cast_expression "(int *)(iVar10 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xdc)" (( "(") (binary_expression "iVar10 + 0xdc" (identifier "iVar10") (+ "+") (number_literal "0xdc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar10 + 0xe8) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xe8) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xe8)" (* "*") (cast_expression "(undefined1 *)(iVar10 + 0xe8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xe8)" (( "(") (binary_expression "iVar10 + 0xe8" (identifier "iVar10") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xdf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xdf)" (( "(") (binary_expression "iVar2 + 0xdf" (identifier "iVar2") (+ "+") (number_literal "0xdf")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" (else "else") (compound_statement "{\n              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;\n              *(undefined1 *)(iVar10 + 0xe8) = 1;\n              *(undefined1 *)(iVar2 + 0xdf) = 1;\n              iVar10 = *(int *)(iVar10 + 0xc);\n            }" ({ "{") (expression_statement "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" (* "*") (cast_expression "(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0xdc) + 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0xdc) + 4" (pointer_expression "*(int *)(iVar10 + 0xdc)" (* "*") (cast_expression "(int *)(iVar10 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xdc)" (( "(") (binary_expression "iVar10 + 0xdc" (identifier "iVar10") (+ "+") (number_literal "0xdc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar10 + 0xe8) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xe8) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xe8)" (* "*") (cast_expression "(undefined1 *)(iVar10 + 0xe8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xe8)" (( "(") (binary_expression "iVar10 + 0xe8" (identifier "iVar10") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xdf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xdf)" (( "(") (binary_expression "iVar2 + 0xdf" (identifier "iVar2") (+ "+") (number_literal "0xdf")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = *(int *)(iVar10 + 0xdc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xdc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0xdc)" (* "*") (cast_expression "(int *)(iVar10 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xdc)" (( "(") (binary_expression "iVar10 + 0xdc" (identifier "iVar10") (+ "+") (number_literal "0xdc")) () ")"))))) (; ";")) (expression_statement "uVar8 = 0x1a37;" (assignment_expression "uVar8 = 0x1a37" (identifier "uVar8") (= "=") (number_literal "0x1a37")) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_000190c0;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000190c0;" (goto "goto") (statement_identifier "LAB_000190c0") (; ";"))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x24604)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24604)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24604)" (( "(") (binary_expression "pcVar13 + 0x24604" (identifier "pcVar13") (+ "+") (number_literal "0x24604")) () ")"))))) (; ";")) (if_statement "if (iVar10 != 0) {\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);\n        pcVar14 = *(code **)(pcVar13 + 0x24604);\n        iVar10 = 0;\n        if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }\n      }" ({ "{") (do_statement "do {\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        } while (iVar10 != 0);" (do "do") (compound_statement "{\n          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);\n          iVar10 = *(int *)(iVar10 + 0xc);\n        }" ({ "{") (expression_statement "(**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);" (call_expression "(**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2)" (parenthesized_expression "(**(code **)(pcVar13 + 0x244b8))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0x244b8)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0x244b8)" (* "*") (cast_expression "(code **)(pcVar13 + 0x244b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x244b8)" (( "(") (binary_expression "pcVar13 + 0x244b8" (identifier "pcVar13") (+ "+") (number_literal "0x244b8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar10 + 0xa4),2)" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xa4)" (( "(") (binary_expression "iVar10 + 0xa4" (identifier "iVar10") (+ "+") (number_literal "0xa4")) () ")")))) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x24604)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24604)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24604)" (( "(") (binary_expression "pcVar13 + 0x24604" (identifier "pcVar13") (+ "+") (number_literal "0x24604")) () ")"))))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar3 & 4) != 0) {\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }" (if "if") (parenthesized_expression "((uVar3 & 4) != 0)" (( "(") (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" (( "(") (binary_expression "uVar3 & 4" (identifier "uVar3") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar10 = *(int *)(iVar2 + 0xc);\n          while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }\n        }" ({ "{") (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (while_statement "while (iVar10 != 0) {\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }" (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }\n            iVar5 = (*pcVar14)(iVar7);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);\n            if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }\n            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);\n            if (iVar5 != 0) goto LAB_00019094;\n            *(undefined1 *)(iVar10 + 0xab) = 1;\n            pcVar14 = *(code **)(pcVar13 + 0x24604);\n            iVar10 = *(int *)(iVar2 + 0xc);\n          }" ({ "{") (while_statement "while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }" (while "while") (parenthesized_expression "(pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0')" (( "(") (comma_expression "pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0'" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x24604)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24604)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24604)" (( "(") (binary_expression "pcVar13 + 0x24604" (identifier "pcVar13") (+ "+") (number_literal "0x24604")) () ")"))))) (, ",") (binary_expression "*(char *)(iVar10 + 0xab) != '\0'" (pointer_expression "*(char *)(iVar10 + 0xab)" (* "*") (cast_expression "(char *)(iVar10 + 0xab)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xab)" (( "(") (binary_expression "iVar10 + 0xab" (identifier "iVar10") (+ "+") (number_literal "0xab")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n              iVar10 = *(int *)(iVar10 + 0xc);\n              if (iVar10 == 0) goto LAB_00018e1c;\n            }" ({ "{") (expression_statement "iVar10 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_00018e1c;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018e1c;" (goto "goto") (statement_identifier "LAB_00018e1c") (; ";"))) (} "}"))) (expression_statement "iVar5 = (*pcVar14)(iVar7);" (assignment_expression "iVar5 = (*pcVar14)(iVar7)" (identifier "iVar5") (= "=") (call_expression "(*pcVar14)(iVar7)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar8 = 0x1a6f;\n              goto LAB_00018f34;\n            }" ({ "{") (expression_statement "uVar8 = 0x1a6f;" (assignment_expression "uVar8 = 0x1a6f" (identifier "uVar8") (= "=") (number_literal "0x1a6f")) (; ";")) (goto_statement "goto LAB_00018f34;" (goto "goto") (statement_identifier "LAB_00018f34") (; ";")) (} "}"))) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0)" (parenthesized_expression "(**(code **)(pcVar13 + 0x244e4))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0x244e4)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0x244e4)" (* "*") (cast_expression "(code **)(pcVar13 + 0x244e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x244e4)" (( "(") (binary_expression "pcVar13 + 0x244e4" (identifier "pcVar13") (+ "+") (number_literal "0x244e4")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar10 + 0x58),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x58)" (( "(") (binary_expression "iVar10 + 0x58" (identifier "iVar10") (+ "+") (number_literal "0x58")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar8 = 0x1a71;\nLAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);\nLAB_00019094:\n              uVar8 = 0x1a72;\n              goto LAB_00019098;\n            }" ({ "{") (expression_statement "uVar8 = 0x1a71;" (assignment_expression "uVar8 = 0x1a71" (identifier "uVar8") (= "=") (number_literal "0x1a71")) (; ";")) (labeled_statement "LAB_00019070:\n              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);" (statement_identifier "LAB_00019070") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243c0)" (( "(") (binary_expression "pcVar13 + 0x243c0" (identifier "pcVar13") (+ "+") (number_literal "0x243c0")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40)" (( "(") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243bc)" (( "(") (binary_expression "pcVar13 + 0x243bc" (identifier "pcVar13") (+ "+") (number_literal "0x243bc")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x51b0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x4d40" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x4d40")) () ")"))) (; ";"))) (labeled_statement "LAB_00019094:\n              uVar8 = 0x1a72;" (statement_identifier "LAB_00019094") (: ":") (expression_statement "uVar8 = 0x1a72;" (assignment_expression "uVar8 = 0x1a72" (identifier "uVar8") (= "=") (number_literal "0x1a72")) (; ";"))) (goto_statement "goto LAB_00019098;" (goto "goto") (statement_identifier "LAB_00019098") (; ";")) (} "}"))) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar13 + 0x24594))(iVar7)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0x24594)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0x24594)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24594)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24594)" (( "(") (binary_expression "pcVar13 + 0x24594" (identifier "pcVar13") (+ "+") (number_literal "0x24594")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_00019094;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019094;" (goto "goto") (statement_identifier "LAB_00019094") (; ";"))) (expression_statement "*(undefined1 *)(iVar10 + 0xab) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0xab) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0xab)" (* "*") (cast_expression "(undefined1 *)(iVar10 + 0xab)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xab)" (( "(") (binary_expression "iVar10 + 0xab" (identifier "iVar10") (+ "+") (number_literal "0xab")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x24604)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24604)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24604)" (( "(") (binary_expression "pcVar13 + 0x24604" (identifier "pcVar13") (+ "+") (number_literal "0x24604")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00018e1c:\n      iVar5 = (*pcVar14)(iVar7);" (statement_identifier "LAB_00018e1c") (: ":") (expression_statement "iVar5 = (*pcVar14)(iVar7);" (assignment_expression "iVar5 = (*pcVar14)(iVar7)" (identifier "iVar5") (= "=") (call_expression "(*pcVar14)(iVar7)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";"))) (expression_statement "uVar8 = 0x1a7c;" (assignment_expression "uVar8 = 0x1a7c" (identifier "uVar8") (= "=") (number_literal "0x1a7c")) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_00018f34;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018f34;" (goto "goto") (statement_identifier "LAB_00018f34") (; ";"))) (if_statement "if (uVar11 != 0) {\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)(iVar2 + 0xdf) = 1;\n        FUN_00017778(iVar2);\n      }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + 0xdf) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xdf) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xdf)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xdf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xdf)" (( "(") (binary_expression "iVar2 + 0xdf" (identifier "iVar2") (+ "+") (number_literal "0xdf")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00017778(iVar2);" (call_expression "FUN_00017778(iVar2)" (identifier "FUN_00017778") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00018e38:\n      iVar10 = *(int *)(iVar2 + 0xc);" (statement_identifier "LAB_00018e38") (: ":") (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (while_statement "while( true ) {\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }\n        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;\n        iVar7 = *(int *)(iVar10 + 0x18);\n        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;\n        FUN_00013f40(iVar10);\n        iVar10 = *(int *)(iVar2 + 0xc);\n      }" ({ "{") (if_statement "if (iVar10 == 0) {\n          FUN_000188d8(iVar2);\n          return;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000188d8(iVar2);\n          return;\n        }" ({ "{") (expression_statement "FUN_000188d8(iVar2);" (call_expression "FUN_000188d8(iVar2)" (identifier "FUN_000188d8") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;" (if "if") (parenthesized_expression "(((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0'))" (( "(") (binary_expression "((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&\n           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')" (parenthesized_expression "((*(uint *)(iVar2 + 0xf4) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(iVar2 + 0xf4) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar2 + 0xf4) & 4)" (( "(") (binary_expression "*(uint *)(iVar2 + 0xf4) & 4" (pointer_expression "*(uint *)(iVar2 + 0xf4)" (* "*") (cast_expression "(uint *)(iVar2 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xf4)" (( "(") (binary_expression "iVar2 + 0xf4" (identifier "iVar2") (+ "+") (number_literal "0xf4")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')" (( "(") (comma_expression "uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0'" (assignment_expression "uVar8 = 0x1a91" (identifier "uVar8") (= "=") (number_literal "0x1a91")) (, ",") (binary_expression "*(char *)(iVar10 + 0xab) == '\0'" (pointer_expression "*(char *)(iVar10 + 0xab)" (* "*") (cast_expression "(char *)(iVar10 + 0xab)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xab)" (( "(") (binary_expression "iVar10 + 0xab" (identifier "iVar10") (+ "+") (number_literal "0xab")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00019070;" (goto "goto") (statement_identifier "LAB_00019070") (; ";"))) (expression_statement "iVar7 = *(int *)(iVar10 + 0x18);" (assignment_expression "iVar7 = *(int *)(iVar10 + 0x18)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar10 + 0x18)" (* "*") (cast_expression "(int *)(iVar10 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;" (if "if") (parenthesized_expression "((*(uint *)(iVar7 + 0xf4) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar7 + 0xf4) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar7 + 0xf4) & 4)" (( "(") (binary_expression "*(uint *)(iVar7 + 0xf4) & 4" (pointer_expression "*(uint *)(iVar7 + 0xf4)" (* "*") (cast_expression "(uint *)(iVar7 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xf4)" (( "(") (binary_expression "iVar7 + 0xf4" (identifier "iVar7") (+ "+") (number_literal "0xf4")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_00013f40(iVar10);" (call_expression "FUN_00013f40(iVar10)" (identifier "FUN_00013f40") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar11 = iVar7 + 0xac;" (assignment_expression "uVar11 = iVar7 + 0xac" (identifier "uVar11") (= "=") (binary_expression "iVar7 + 0xac" (identifier "iVar7") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "FUN_00013f84(iVar10,3);" (call_expression "FUN_00013f84(iVar10,3)" (identifier "FUN_00013f84") (argument_list "(iVar10,3)" (( "(") (identifier "iVar10") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);" (assignment_expression "iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar13 + 0x24594))(uVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0x24594))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0x24594)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0x24594)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24594)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24594)" (( "(") (binary_expression "pcVar13 + 0x24594" (identifier "pcVar13") (+ "+") (number_literal "0x24594")) () ")"))))) () ")")) (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        } while( true );" (do "do") (compound_statement "{\n          uVar8 = 0x1274;\nLAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);\nLAB_000190c0:\n          uVar8 = 0x1a37;\n          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);\nLAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);\n        }" ({ "{") (expression_statement "uVar8 = 0x1274;" (assignment_expression "uVar8 = 0x1274" (identifier "uVar8") (= "=") (number_literal "0x1274")) (; ";")) (labeled_statement "LAB_00019098:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);" (statement_identifier "LAB_00019098") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243c0)" (( "(") (binary_expression "pcVar13 + 0x243c0" (identifier "pcVar13") (+ "+") (number_literal "0x243c0")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243bc)" (( "(") (binary_expression "pcVar13 + 0x243bc" (identifier "pcVar13") (+ "+") (number_literal "0x243bc")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x51b0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x62c0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x62c0")) () ")"))) (; ";"))) (labeled_statement "LAB_000190c0:\n          uVar8 = 0x1a37;" (statement_identifier "LAB_000190c0") (: ":") (expression_statement "uVar8 = 0x1a37;" (assignment_expression "uVar8 = 0x1a37" (identifier "uVar8") (= "=") (number_literal "0x1a37")) (; ";"))) (expression_statement "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar13 + 0x243bc)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243bc)" (( "(") (binary_expression "pcVar13 + 0x243bc" (identifier "pcVar13") (+ "+") (number_literal "0x243bc")) () ")"))))) (; ";")) (labeled_statement "LAB_000190c4:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);" (statement_identifier "LAB_000190c4") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243c0)" (( "(") (binary_expression "pcVar13 + 0x243c0" (identifier "pcVar13") (+ "+") (number_literal "0x243c0")) () ")"))))))) () ")")) (argument_list "(*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,\n                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4)" (( "(") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x51b0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x4ce4" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x4ce4")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x14);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x14)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x10);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x10)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec))" (( "(") (binary_expression "*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)" (pointer_expression "*(int *)(iVar10 + 0x98)" (* "*") (cast_expression "(int *)(iVar10 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x98)" (( "(") (binary_expression "iVar10 + 0x98" (identifier "iVar10") (+ "+") (number_literal "0x98")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar7 + 0xec)" (* "*") (cast_expression "(int *)(iVar7 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xec)" (( "(") (binary_expression "iVar7 + 0xec" (identifier "iVar7") (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (compound_statement "{\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }\n      }" ({ "{") (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x30) = uVar8;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar7 + 0x30) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}")) (else_clause "else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + 0x10) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0x10)" (* "*") (cast_expression "(int *)(iVar10 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x34) = uVar8;\n          goto LAB_00018ecc;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar7 + 0x34) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x34) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (goto_statement "goto LAB_00018ecc;" (goto "goto") (statement_identifier "LAB_00018ecc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" (else "else") (compound_statement "{\n        if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }\n        iVar5 = *(int *)(iVar10 + 0x10);\n        uVar8 = *(undefined4 *)(iVar10 + 0x14);\n        if (iVar5 == 0) goto LAB_00018f58;\n      }" ({ "{") (if_statement "if (iVar5 == 0) {\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }\n        else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar7 + 0x38) = uVar8;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar7 + 0x38) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x38) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x38)" (( "(") (binary_expression "iVar7 + 0x38" (identifier "iVar7") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}")) (else_clause "else {\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(iVar5 + 0x10) = uVar8;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + 0x10) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (expression_statement "iVar5 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0x10)" (* "*") (cast_expression "(int *)(iVar10 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0x14)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00018f58;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018f58;" (goto "goto") (statement_identifier "LAB_00018f58") (; ";"))) (} "}")))) (expression_statement "*(undefined4 *)(iVar5 + 0x14) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0x14) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (labeled_statement "LAB_00018ecc:\n      iVar5 = *(int *)(iVar10 + 0xc);" (statement_identifier "LAB_00018ecc") (: ":") (expression_statement "iVar5 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00018f70;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018f70;" (goto "goto") (statement_identifier "LAB_00018f70") (; ";"))) (labeled_statement "LAB_00018ee0:\n      *(undefined4 *)(iVar5 + 8) = uVar8;" (statement_identifier "LAB_00018ee0") (: ":") (expression_statement "*(undefined4 *)(iVar5 + 8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 8) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0xc)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00018f80;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018f80;" (goto "goto") (statement_identifier "LAB_00018f80") (; ";"))) (labeled_statement "LAB_00018ef0:\n      *(undefined4 *)(iVar5 + 0xc) = uVar8;" (statement_identifier "LAB_00018ef0") (: ":") (expression_statement "*(undefined4 *)(iVar5 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18)" (pointer_expression "*(undefined4 *)(iVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x1c) == 0" (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018fa0;" (goto "goto") (statement_identifier "LAB_00018fa0") (; ";"))) (do_statement "do {\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      } while( true );" (do "do") (compound_statement "{\n        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;\n        while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }\n      }" ({ "{") (expression_statement "*(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;" (assignment_expression "*(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10" (pointer_expression "*(int *)(*(int *)(iVar7 + 0x18) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar7 + 0x18) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar7 + 0x18) + 0xc)" (( "(") (binary_expression "*(int *)(iVar7 + 0x18) + 0xc" (pointer_expression "*(int *)(iVar7 + 0x18)" (* "*") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (while_statement "while( true ) {\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pcVar14 = *(code **)(pcVar13 + 0x24604);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar5 = (*pcVar14)(uVar11);\n          if (iVar5 == 0) goto LAB_00018e38;\n          uVar8 = 0x1287;\nLAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);\n          uVar8 = extraout_v1;\nLAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;\n          *(undefined4 *)(iVar10 + 0x10) = 0;\n          *(undefined4 *)(iVar10 + 0x14) = 0;\n          iVar5 = *(int *)(iVar10 + 0xc);\n          uVar8 = *(undefined4 *)(iVar10 + 8);\n          if (iVar5 != 0) goto LAB_00018ee0;\nLAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;\n          iVar5 = *(int *)(iVar10 + 8);\n          uVar8 = *(undefined4 *)(iVar10 + 0xc);\n          if (iVar5 != 0) goto LAB_00018ef0;\nLAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;\n          *(undefined4 *)(iVar10 + 8) = 0;\n          *(undefined4 *)(iVar10 + 0xc) = 0;\n          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);\n          if (*(int *)(iVar7 + 0x1c) != 0) break;\nLAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;\n        }" ({ "{") (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x24604);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x24604)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar13 + 0x24604)" (* "*") (cast_expression "(code **)(pcVar13 + 0x24604)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x24604)" (( "(") (binary_expression "pcVar13 + 0x24604" (identifier "pcVar13") (+ "+") (number_literal "0x24604")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar7 + 0x18) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x18) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x18)" (* "*") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar5 = (*pcVar14)(uVar11);" (assignment_expression "iVar5 = (*pcVar14)(uVar11)" (identifier "iVar5") (= "=") (call_expression "(*pcVar14)(uVar11)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00018e38;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018e38;" (goto "goto") (statement_identifier "LAB_00018e38") (; ";"))) (expression_statement "uVar8 = 0x1287;" (assignment_expression "uVar8 = 0x1287" (identifier "uVar8") (= "=") (number_literal "0x1287")) (; ";")) (labeled_statement "LAB_00018f34:\n          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);" (statement_identifier "LAB_00018f34") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);" (call_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))\n                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar13 + 0x243c0))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243c0)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243c0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243c0)" (( "(") (binary_expression "pcVar13 + 0x243c0" (identifier "pcVar13") (+ "+") (number_literal "0x243c0")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,\n                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298)" (( "(") (pointer_expression "**(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (pointer_expression "*(undefined4 **)(pcVar13 + 0x243bc)" (* "*") (cast_expression "(undefined4 **)(pcVar13 + 0x243bc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0x243bc)" (( "(") (binary_expression "pcVar13 + 0x243bc" (identifier "pcVar13") (+ "+") (number_literal "0x243bc")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x51b0" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x51b0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "*(int *)(pcVar13 + 0x243b0) + -0x6298" (pointer_expression "*(int *)(pcVar13 + 0x243b0)" (* "*") (cast_expression "(int *)(pcVar13 + 0x243b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0x243b0)" (( "(") (binary_expression "pcVar13 + 0x243b0" (identifier "pcVar13") (+ "+") (number_literal "0x243b0")) () ")")))) (+ "+") (number_literal "-0x6298")) () ")"))) (; ";"))) (expression_statement "uVar8 = extraout_v1;" (assignment_expression "uVar8 = extraout_v1" (identifier "uVar8") (= "=") (identifier "extraout_v1")) (; ";")) (labeled_statement "LAB_00018f58:\n          *(undefined4 *)(iVar7 + 0x3c) = uVar8;" (statement_identifier "LAB_00018f58") (: ":") (expression_statement "*(undefined4 *)(iVar7 + 0x3c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x3c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3c)" (( "(") (binary_expression "iVar7 + 0x3c" (identifier "iVar7") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "*(undefined4 *)(iVar10 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar10 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 8);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_00018ee0;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018ee0;" (goto "goto") (statement_identifier "LAB_00018ee0") (; ";"))) (labeled_statement "LAB_00018f70:\n          *(undefined4 *)(iVar7 + 8) = uVar8;" (statement_identifier "LAB_00018f70") (: ":") (expression_statement "*(undefined4 *)(iVar7 + 8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "iVar5 = *(int *)(iVar10 + 8);" (assignment_expression "iVar5 = *(int *)(iVar10 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(iVar10 + 0xc);" (assignment_expression "uVar8 = *(undefined4 *)(iVar10 + 0xc)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_00018ef0;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018ef0;" (goto "goto") (statement_identifier "LAB_00018ef0") (; ";"))) (labeled_statement "LAB_00018f80:\n          *(undefined4 *)(iVar7 + 0xc) = uVar8;" (statement_identifier "LAB_00018f80") (: ":") (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "*(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18)" (pointer_expression "*(undefined4 *)(iVar10 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x1c) != 0) break;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x1c) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x1c) != 0" (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00018fa0:\n          *(int *)(iVar7 + 0x1c) = iVar10;" (statement_identifier "LAB_00018fa0") (: ":") (expression_statement "*(int *)(iVar7 + 0x1c) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x1c) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar10")) (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;" (assignment_expression "piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7" (subscript_expression "piVar9[0x2c]" (identifier "piVar9") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "piVar9[0x2c] & 0xfffffff7" (subscript_expression "piVar9[0x2c]" (identifier "piVar9") ([ "[") (number_literal "0x2c") (] "]")) (& "&") (number_literal "0xfffffff7"))) (; ";")) (} "}")))) (if_statement "if (piVar9[9] != 0) {\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }" (if "if") (parenthesized_expression "(piVar9[9] != 0)" (( "(") (binary_expression "piVar9[9] != 0" (subscript_expression "piVar9[9]" (identifier "piVar9") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_MHD_destroy_response_0003d234)();\n    piVar9[9] = 0;\n  }" ({ "{") (expression_statement "(*(code *)PTR_MHD_destroy_response_0003d234)();" (call_expression "(*(code *)PTR_MHD_destroy_response_0003d234)()" (parenthesized_expression "(*(code *)PTR_MHD_destroy_response_0003d234)" (( "(") (pointer_expression "*(code *)PTR_MHD_destroy_response_0003d234" (* "*") (cast_expression "(code *)PTR_MHD_destroy_response_0003d234" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_MHD_destroy_response_0003d234"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar9[9] = 0;" (assignment_expression "piVar9[9] = 0" (subscript_expression "piVar9[9]" (identifier "piVar9") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;" (if "if") (parenthesized_expression "(((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9))" (( "(") (binary_expression "((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&\n     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" (parenthesized_expression "((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0))" (( "(") (binary_expression "(piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" (parenthesized_expression "(piVar9[0x29] != -1)" (( "(") (binary_expression "piVar9[0x29] != -1" (subscript_expression "piVar9[0x29]" (identifier "piVar9") ([ "[") (number_literal "0x29") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0" (assignment_expression "iVar2 = (*(code *)PTR_close_0003d128)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_close_0003d128)()" (parenthesized_expression "(*(code *)PTR_close_0003d128)" (( "(") (pointer_expression "*(code *)PTR_close_0003d128" (* "*") (cast_expression "(code *)PTR_close_0003d128" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003d128"))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)" (( "(") (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003d198)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003d198)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003d198)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003d198" (* "*") (cast_expression "(code *)PTR___errno_location_0003d198" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003d198"))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_00018c1c;" (goto "goto") (statement_identifier "LAB_00018c1c") (; ";"))) (if_statement "if (piVar9[0x15] != 0) {\n    (*(code *)PTR_free_0003d250)();\n  }" (if "if") (parenthesized_expression "(piVar9[0x15] != 0)" (( "(") (binary_expression "piVar9[0x15] != 0" (subscript_expression "piVar9[0x15]" (identifier "piVar9") ([ "[") (number_literal "0x15") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_free_0003d250)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_0003d250)();" (call_expression "(*(code *)PTR_free_0003d250)()" (parenthesized_expression "(*(code *)PTR_free_0003d250)" (( "(") (pointer_expression "*(code *)PTR_free_0003d250" (* "*") (cast_expression "(code *)PTR_free_0003d250" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003d250"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003d250)(piVar9);" (call_expression "(*(code *)PTR_free_0003d250)(piVar9)" (parenthesized_expression "(*(code *)PTR_free_0003d250)" (( "(") (pointer_expression "*(code *)PTR_free_0003d250" (* "*") (cast_expression "(code *)PTR_free_0003d250" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003d250"))) () ")")) (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003d210)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003d210" (* "*") (cast_expression "(code *)PTR_pthread_mutex_lock_0003d210" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_lock_0003d210"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = 0xd57;\n    do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );\n  }" ({ "{") (expression_statement "uVar8 = 0xd57;" (assignment_expression "uVar8 = 0xd57" (identifier "uVar8") (= "=") (number_literal "0xd57")) (; ";")) (do_statement "do {\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    } while( true );" (do "do") (compound_statement "{\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);\nLAB_00018bf4:\n      uVar8 = 0xd18;\nLAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);\nLAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);\nLAB_00018c44:\n      uVar8 = 0xd10;\n    }" ({ "{") (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003d03c" (* "*") (pointer_expression "*(code **)PTR_DAT_0003d03c" (* "*") (cast_expression "(code **)PTR_DAT_0003d03c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003d03c")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x62c0)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003d038" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003d038"))) (, ",") (binary_expression "PTR_DAT_0003d02c + -0x51b0" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x51b0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_DAT_0003d02c + -0x62c0" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x62c0")) () ")"))) (; ";")) (labeled_statement "LAB_00018bf4:\n      uVar8 = 0xd18;" (statement_identifier "LAB_00018bf4") (: ":") (expression_statement "uVar8 = 0xd18;" (assignment_expression "uVar8 = 0xd18" (identifier "uVar8") (= "=") (number_literal "0xd18")) (; ";"))) (labeled_statement "LAB_00018bf8:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);" (statement_identifier "LAB_00018bf8") (: ":") (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003d03c" (* "*") (pointer_expression "*(code **)PTR_DAT_0003d03c" (* "*") (cast_expression "(code **)PTR_DAT_0003d03c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003d03c")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,\n                 PTR_DAT_0003d02c + -0x6298)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003d038" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003d038"))) (, ",") (binary_expression "PTR_DAT_0003d02c + -0x51b0" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x51b0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_DAT_0003d02c + -0x6298" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x6298")) () ")"))) (; ";"))) (labeled_statement "LAB_00018c1c:\n      (**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" (statement_identifier "LAB_00018c1c") (: ":") (expression_statement "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc);" (call_expression "(**(code **)PTR_DAT_0003d03c)\n                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" (parenthesized_expression "(**(code **)PTR_DAT_0003d03c)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003d03c" (* "*") (pointer_expression "*(code **)PTR_DAT_0003d03c" (* "*") (cast_expression "(code **)PTR_DAT_0003d03c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003d03c")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,\n                 PTR_DAT_0003d02c + -0x4cfc)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003d038" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003d038" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003d038"))) (, ",") (binary_expression "PTR_DAT_0003d02c + -0x51b0" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x51b0")) (, ",") (number_literal "0xd51") (, ",") (binary_expression "PTR_DAT_0003d02c + -0x4cfc" (identifier "PTR_DAT_0003d02c") (+ "+") (number_literal "-0x4cfc")) () ")"))) (; ";"))) (labeled_statement "LAB_00018c44:\n      uVar8 = 0xd10;" (statement_identifier "LAB_00018c44") (: ":") (expression_statement "uVar8 = 0xd10;" (assignment_expression "uVar8 = 0xd10" (identifier "uVar8") (= "=") (number_literal "0xd10")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "piVar9 = *(int **)(param_1 + 0x1c);" (assignment_expression "piVar9 = *(int **)(param_1 + 0x1c)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(param_1 + 0x1c)" (* "*") (cast_expression "(int **)(param_1 + 0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xde) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xde) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xde)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xde)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xde)" (( "(") (binary_expression "param_1 + 0xde" (identifier "param_1") (+ "+") (number_literal "0xde")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;" (assignment_expression "*(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1" (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0xe4) + -1" (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (goto_statement "goto joined_r0x0001892c;" (goto "goto") (statement_identifier "joined_r0x0001892c") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (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: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (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: (identifier) right: (number_literal))))) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (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: (identifier) right: (number_literal))))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (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: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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: (identifier) right: (number_literal))))) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)))) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (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: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))))) 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: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (if_statement condition: (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: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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))))))) (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 (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))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) 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))))))) (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: (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: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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: (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))))) 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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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)))))))) 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: (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))))) 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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (break_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: (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: (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: (type_identifier) 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: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (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)))))))) 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: (type_identifier) declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (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))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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))))) body: (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))))))) (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: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))) (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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (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)) (identifier) (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)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (identifier) right: (number_literal))))) 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 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))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (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)))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))) (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: (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: (number_literal)) right: (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: (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: (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))) consequence: (break_statement)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (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)) (identifier) (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)))))) (labeled_statement label: (statement_identifier) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (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)) (identifier) (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))))))) condition: (parenthesized_expression (true))))) (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: (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: (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: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (identifier)))) 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: (identifier)))))) (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: (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: (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: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (identifier)))) 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: (identifier)))))) (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: (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: (goto_statement label: (statement_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: (identifier) right: (number_literal))))) right: (identifier))) (labeled_statement label: (statement_identifier) (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: (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))))))) (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))) (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (identifier) right: (number_literal))))) right: (identifier)))) (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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (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))))))) (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: (goto_statement label: (statement_identifier))) (do_statement body: (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: (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))))) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (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: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (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)) (identifier) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_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: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (identifier) right: (number_literal))))) right: (identifier)))) (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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (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))))))) (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: (break_statement)) (labeled_statement label: (statement_identifier) (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: (identifier) right: (number_literal))))) right: (identifier))))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (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 (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal))))) right: (number_literal))) (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: (identifier) right: (number_literal))))) right: (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)))) (goto_statement label: (statement_identifier)))))

void MASKED(int param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int *piVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 extraout_v1;
  undefined4 uVar8;
  int *piVar9;
  int iVar10;
  uint uVar11;
  int iVar12;
  code *pcVar13;
  code *pcVar14;
  
  iVar10 = param_1 + 0xac;
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);
  if (iVar2 != 0) goto LAB_00018c44;
  piVar9 = *(int **)(param_1 + 0x1c);
joined_r0x0001892c:
  if (piVar9 == (int *)0x0) {
    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003d280)(iVar10);
    if (iVar2 == 0) {
      return;
    }
    uVar8 = 0xd5d;
    goto LAB_00018bf8;
  }
  if (piVar9[3] == 0) {
    *(int *)(param_1 + 0x18) = piVar9[2];
    iVar2 = piVar9[2];
    iVar7 = piVar9[3];
    if (iVar2 == 0) goto LAB_00018b14;
LAB_00018958:
    *(int *)(iVar2 + 0xc) = iVar7;
  }
  else {
    *(int *)(piVar9[3] + 8) = piVar9[2];
    iVar2 = piVar9[2];
    iVar7 = piVar9[3];
    if (iVar2 != 0) goto LAB_00018958;
LAB_00018b14:
    *(int *)(param_1 + 0x1c) = iVar7;
  }
  puVar1 = PTR_pthread_mutex_unlock_0003d280;
  piVar9[2] = 0;
  piVar9[3] = 0;
  iVar2 = (*(code *)puVar1)(iVar10);
  if (iVar2 != 0) goto LAB_00018bf4;
  if ((((*(uint *)(param_1 + 0xf4) & 4) == 0) || (*(char *)((int)piVar9 + 0xab) != '\0')) ||
     (iVar2 = (*(code *)PTR_pthread_join_0003d160)(piVar9[0x16],0), iVar2 == 0)) {
    puVar1 = PTR_free_0003d250;
    if (piVar9[0x37] != 0) {
      piVar9[0x37] = 0;
      (*(code *)puVar1)();
    }
    FUN_0001eb80(piVar9[10]);
    if (*(code **)(param_1 + 0x50) != (code *)0x0) {
      (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),piVar9,piVar9 + 0xc,1);
    }
    FUN_0001871c(param_1,piVar9[0x15],piVar9[0x24]);
    if ((*(uint *)(param_1 + 0xf4) & 0x200) != 0) {
      uVar3 = piVar9[0x2c];
      if ((uVar3 & 4) != 0) {
        if ((int *)piVar9[1] == (int *)0x0) {
          *(int *)(param_1 + 0x20) = *piVar9;
        }
        else {
          *(int *)piVar9[1] = *piVar9;
        }
        if (*piVar9 == 0) {
          *(int *)(param_1 + 0x24) = piVar9[1];
        }
        else {
          *(int *)(*piVar9 + 4) = piVar9[1];
        }
        *piVar9 = 0;
        piVar9[1] = 0;
        uVar3 = piVar9[0x2c] & 0xfffffffb;
        piVar9[0x2c] = uVar3;
      }
      if ((*(int *)(param_1 + 0xd0) != -1) &&
         (pcVar13 = (code *)PTR_epoll_ctl_0003d1f8, (uVar3 & 8) != 0)) goto LAB_00018b58;
    }
  }
  else {
    pcVar13 = *(code **)PTR_DAT_0003d03c;
    (*pcVar13)(*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd1c,
               PTR_DAT_0003d02c + -0x4d40);
LAB_00018b58:
    iVar2 = (*pcVar13)();
    if (iVar2 != 0) {
      iVar2 = *(int *)PTR_DAT_0003d038;
      pcVar13 = *(code **)PTR_DAT_0003d03c;
      (*pcVar13)(iVar2,PTR_DAT_0003d02c + -0x51b0,0xd46,PTR_DAT_0003d02c + -0x4d24);
      uVar3 = *(uint *)(iVar2 + 0xf4);
      uVar11 = uVar3 & 0x8000;
      if ((uVar3 & 0x2000) != 0) {
        *(undefined1 *)(iVar2 + 0xdf) = 1;
        FUN_00017778();
      }
      iVar7 = iVar2 + 0xac;
      iVar10 = (**(code **)(pcVar13 + 0x24594))(iVar7);
      uVar8 = 0x1a2b;
      if (iVar10 != 0) goto LAB_00019098;
      if (uVar11 == 0) {
        uVar8 = 0x1a58;
        if (*(int *)(iVar2 + 0x10) != 0) {
          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);
          goto LAB_000190c4;
        }
      }
      else {
        iVar10 = *(int *)(iVar2 + 0x14);
        if (iVar10 != 0) {
          iVar5 = *(int *)(iVar10 + 0xdc);
          iVar12 = *(int *)(pcVar13 + 0x243b0);
          if (iVar5 == 0) goto LAB_000190c0;
          while( true ) {
            if (*(char *)(iVar5 + 4) == '\0') {
              FUN_0001e5b0(iVar2,iVar12 + -0x4ca4,uVar8);
              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;
              *(undefined1 *)(iVar10 + 0xe8) = 1;
              *(undefined1 *)(iVar2 + 0xdf) = 1;
              iVar10 = *(int *)(iVar10 + 0xc);
            }
            else {
              *(undefined1 *)(*(int *)(iVar10 + 0xdc) + 4) = 1;
              *(undefined1 *)(iVar10 + 0xe8) = 1;
              *(undefined1 *)(iVar2 + 0xdf) = 1;
              iVar10 = *(int *)(iVar10 + 0xc);
            }
            if (iVar10 == 0) break;
            iVar5 = *(int *)(iVar10 + 0xdc);
            uVar8 = 0x1a37;
            if (iVar5 == 0) goto LAB_000190c0;
          }
        }
      }
      iVar10 = *(int *)(iVar2 + 0xc);
      pcVar14 = *(code **)(pcVar13 + 0x24604);
      if (iVar10 != 0) {
        do {
          (**(code **)(pcVar13 + 0x244b8))(*(undefined4 *)(iVar10 + 0xa4),2);
          iVar10 = *(int *)(iVar10 + 0xc);
        } while (iVar10 != 0);
        pcVar14 = *(code **)(pcVar13 + 0x24604);
        iVar10 = 0;
        if ((uVar3 & 4) != 0) {
          iVar10 = *(int *)(iVar2 + 0xc);
          while (iVar10 != 0) {
            while (pcVar14 = *(code **)(pcVar13 + 0x24604), *(char *)(iVar10 + 0xab) != '\0') {
              iVar10 = *(int *)(iVar10 + 0xc);
              if (iVar10 == 0) goto LAB_00018e1c;
            }
            iVar5 = (*pcVar14)(iVar7);
            if (iVar5 != 0) {
              uVar8 = 0x1a6f;
              goto LAB_00018f34;
            }
            iVar5 = (**(code **)(pcVar13 + 0x244e4))(*(undefined4 *)(iVar10 + 0x58),0);
            if (iVar5 != 0) {
              uVar8 = 0x1a71;
LAB_00019070:
              (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                        (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,
                         uVar8,*(int *)(pcVar13 + 0x243b0) + -0x4d40);
LAB_00019094:
              uVar8 = 0x1a72;
              goto LAB_00019098;
            }
            iVar5 = (**(code **)(pcVar13 + 0x24594))(iVar7);
            if (iVar5 != 0) goto LAB_00019094;
            *(undefined1 *)(iVar10 + 0xab) = 1;
            pcVar14 = *(code **)(pcVar13 + 0x24604);
            iVar10 = *(int *)(iVar2 + 0xc);
          }
        }
      }
LAB_00018e1c:
      iVar5 = (*pcVar14)(iVar7);
      uVar8 = 0x1a7c;
      if (iVar5 != 0) goto LAB_00018f34;
      if (uVar11 != 0) {
        *(undefined1 *)(iVar2 + 0xdf) = 1;
        FUN_00017778(iVar2);
      }
LAB_00018e38:
      iVar10 = *(int *)(iVar2 + 0xc);
      while( true ) {
        if (iVar10 == 0) {
          MASKED(iVar2);
          return;
        }
        if (((*(uint *)(iVar2 + 0xf4) & 4) != 0) &&
           (uVar8 = 0x1a91, *(char *)(iVar10 + 0xab) == '\0')) goto LAB_00019070;
        iVar7 = *(int *)(iVar10 + 0x18);
        if ((*(uint *)(iVar7 + 0xf4) & 4) == 0) break;
        FUN_00013f40(iVar10);
        iVar10 = *(int *)(iVar2 + 0xc);
      }
      uVar11 = iVar7 + 0xac;
      FUN_00013f84(iVar10,3);
      iVar5 = (**(code **)(pcVar13 + 0x24594))(uVar11);
      if (iVar5 != 0) {
        do {
          uVar8 = 0x1274;
LAB_00019098:
          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,
                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x62c0);
LAB_000190c0:
          uVar8 = 0x1a37;
          puVar6 = *(undefined4 **)(pcVar13 + 0x243bc);
LAB_000190c4:
          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                    (*puVar6,*(int *)(pcVar13 + 0x243b0) + -0x51b0,uVar8,
                     *(int *)(pcVar13 + 0x243b0) + -0x4ce4);
        } while( true );
      }
      iVar5 = *(int *)(iVar10 + 0x14);
      uVar8 = *(undefined4 *)(iVar10 + 0x10);
      if (*(int *)(iVar10 + 0x98) == *(int *)(iVar7 + 0xec)) {
        if (iVar5 == 0) {
          *(undefined4 *)(iVar7 + 0x30) = uVar8;
        }
        else {
          *(undefined4 *)(iVar5 + 0x10) = uVar8;
        }
        iVar5 = *(int *)(iVar10 + 0x10);
        uVar8 = *(undefined4 *)(iVar10 + 0x14);
        if (iVar5 == 0) {
          *(undefined4 *)(iVar7 + 0x34) = uVar8;
          goto LAB_00018ecc;
        }
      }
      else {
        if (iVar5 == 0) {
          *(undefined4 *)(iVar7 + 0x38) = uVar8;
        }
        else {
          *(undefined4 *)(iVar5 + 0x10) = uVar8;
        }
        iVar5 = *(int *)(iVar10 + 0x10);
        uVar8 = *(undefined4 *)(iVar10 + 0x14);
        if (iVar5 == 0) goto LAB_00018f58;
      }
      *(undefined4 *)(iVar5 + 0x14) = uVar8;
LAB_00018ecc:
      iVar5 = *(int *)(iVar10 + 0xc);
      uVar8 = *(undefined4 *)(iVar10 + 8);
      *(undefined4 *)(iVar10 + 0x10) = 0;
      *(undefined4 *)(iVar10 + 0x14) = 0;
      if (iVar5 == 0) goto LAB_00018f70;
LAB_00018ee0:
      *(undefined4 *)(iVar5 + 8) = uVar8;
      iVar5 = *(int *)(iVar10 + 8);
      uVar8 = *(undefined4 *)(iVar10 + 0xc);
      if (iVar5 == 0) goto LAB_00018f80;
LAB_00018ef0:
      *(undefined4 *)(iVar5 + 0xc) = uVar8;
      *(undefined4 *)(iVar10 + 8) = 0;
      *(undefined4 *)(iVar10 + 0xc) = 0;
      *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);
      if (*(int *)(iVar7 + 0x1c) == 0) goto LAB_00018fa0;
      do {
        *(int *)(*(int *)(iVar7 + 0x18) + 0xc) = iVar10;
        while( true ) {
          pcVar14 = *(code **)(pcVar13 + 0x24604);
          *(int *)(iVar7 + 0x18) = iVar10;
          iVar5 = (*pcVar14)(uVar11);
          if (iVar5 == 0) goto LAB_00018e38;
          uVar8 = 0x1287;
LAB_00018f34:
          (*(code *)**(undefined4 **)(pcVar13 + 0x243c0))
                    (**(undefined4 **)(pcVar13 + 0x243bc),*(int *)(pcVar13 + 0x243b0) + -0x51b0,
                     uVar8,*(int *)(pcVar13 + 0x243b0) + -0x6298);
          uVar8 = extraout_v1;
LAB_00018f58:
          *(undefined4 *)(iVar7 + 0x3c) = uVar8;
          *(undefined4 *)(iVar10 + 0x10) = 0;
          *(undefined4 *)(iVar10 + 0x14) = 0;
          iVar5 = *(int *)(iVar10 + 0xc);
          uVar8 = *(undefined4 *)(iVar10 + 8);
          if (iVar5 != 0) goto LAB_00018ee0;
LAB_00018f70:
          *(undefined4 *)(iVar7 + 8) = uVar8;
          iVar5 = *(int *)(iVar10 + 8);
          uVar8 = *(undefined4 *)(iVar10 + 0xc);
          if (iVar5 != 0) goto LAB_00018ef0;
LAB_00018f80:
          *(undefined4 *)(iVar7 + 0xc) = uVar8;
          *(undefined4 *)(iVar10 + 8) = 0;
          *(undefined4 *)(iVar10 + 0xc) = 0;
          *(undefined4 *)(iVar10 + 8) = *(undefined4 *)(iVar7 + 0x18);
          if (*(int *)(iVar7 + 0x1c) != 0) break;
LAB_00018fa0:
          *(int *)(iVar7 + 0x1c) = iVar10;
        }
      } while( true );
    }
    piVar9[0x2c] = piVar9[0x2c] & 0xfffffff7;
  }
  if (piVar9[9] != 0) {
    (*(code *)PTR_MHD_destroy_response_0003d234)();
    piVar9[9] = 0;
  }
  if (((piVar9[0x29] != -1) && (iVar2 = (*(code *)PTR_close_0003d128)(), iVar2 != 0)) &&
     (piVar4 = (int *)(*(code *)PTR___errno_location_0003d198)(), *piVar4 == 9)) goto LAB_00018c1c;
  if (piVar9[0x15] != 0) {
    (*(code *)PTR_free_0003d250)();
  }
  (*(code *)PTR_free_0003d250)(piVar9);
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003d210)(iVar10);
  if (iVar2 != 0) {
    uVar8 = 0xd57;
    do {
      (**(code **)PTR_DAT_0003d03c)
                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,
                 PTR_DAT_0003d02c + -0x62c0);
LAB_00018bf4:
      uVar8 = 0xd18;
LAB_00018bf8:
      (**(code **)PTR_DAT_0003d03c)
                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,uVar8,
                 PTR_DAT_0003d02c + -0x6298);
LAB_00018c1c:
      (**(code **)PTR_DAT_0003d03c)
                (*(undefined4 *)PTR_DAT_0003d038,PTR_DAT_0003d02c + -0x51b0,0xd51,
                 PTR_DAT_0003d02c + -0x4cfc);
LAB_00018c44:
      uVar8 = 0xd10;
    } while( true );
  }
  piVar9 = *(int **)(param_1 + 0x1c);
  *(undefined1 *)(param_1 + 0xde) = 0;
  *(int *)(param_1 + 0xe4) = *(int *)(param_1 + 0xe4) + -1;
  goto joined_r0x0001892c;
}

