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

void internal_suspend_connection_(MHD_Connection *connection)

{
  bool write_ready;
  bool force_close;
  bool bVar1;
  undefined *puVar2;
  undefined3 extraout_var;
  int iVar3;
  MHD_Connection *pMVar4;
  MHD_EpollState MVar5;
  int *piVar6;
  void *pvVar7;
  undefined4 uVar8;
  MHD_Daemon *pMVar9;
  time_t tVar10;
  int *piVar11;
  size_t *psVar12;
  MHD_UpgradeResponseHandle **ppMVar13;
  _Bool _Var18;
  uint *puVar14;
  int iVar15;
  MHD_FLAG MVar16;
  MHD_UpgradeResponseHandle *pMVar17;
  uint uVar19;
  MHD_Daemon *pMVar20;
  MHD_Daemon *connection_00;
  uint uVar21;
  MHD_Connection *pMVar22;
  MHD_Daemon *p;
  MHD_Daemon *set;
  MHD_AccessHandlerCallback p_Var23;
  MHD_Connection *pMVar24;
  undefined4 uVar25;
  MHD_Daemon *pMVar26;
  MHD_AccessHandlerCallback p_Var27;
  MHD_Daemon *pMVar28;
  MHD_Daemon **ppMVar29;
  MHD_Daemon *pMVar30;
  MHD_UpgradeResponseHandle *pMVar31;
  MHD_Daemon *pMVar32;
  MHD_Daemon *daemon;
  MHD_Daemon *pMVar33;
  MHD_mutex_ *pMVar34;
  MHD_mutex_ *pMVar35;
  undefined1 *puVar36;
  MHD_FLAG MVar37;
  MHD_Daemon *unaff_s6;
  MHD_FLAG MVar38;
  MHD_Daemon *unaff_s7;
  code *pcVar39;
  code *pcVar40;
  undefined1 auStackY_428 [12];
  MHD_Daemon *pMStackY_41c;
  MHD_Daemon *pMStackY_418;
  MHD_Daemon *pMStackY_414;
  MHD_Daemon *pMStackY_410;
  undefined4 uStackY_40c;
  size_t *psStackY_408;
  undefined1 *puStackY_404;
  MHD_Daemon *pMStackY_400;
  MHD_Daemon *pMStackY_3fc;
  MHD_Daemon *pMStackY_3f8;
  code *pcStackY_3f4;
  MHD_socket MStack_3c0;
  MHD_socket MStack_3bc;
  MHD_Daemon *pMStack_3b8;
  undefined4 uStack_3b4;
  undefined1 auStack_3b0 [148];
  undefined1 auStack_31c [256];
  MHD_Daemon MStack_21c;
  MHD_Daemon *pMStack_9c;
  MHD_Daemon *pMStack_98;
  MHD_Daemon *pMStack_94;
  MHD_mutex_ *pMStack_90;
  
  pMVar32 = connection->daemon;
  pMVar34 = &pMVar32->cleanup_connection_mutex;
  iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34);
  puVar2 = PTR_pthread_mutex_unlock_0003f33c;
  if (iVar3 != 0) {
    (**(code **)PTR_mhd_panic_0003f070)
              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,
               PTR_DAT_0003f05c + -0x51e0);
    goto LAB_0001b988;
  }
  if (connection->resuming != false) {
    connection->resuming = false;
    iVar3 = (*(code *)puVar2)(pMVar34);
    uVar25 = 0xa8a;
    if (iVar3 != 0) goto LAB_0001b8ac;
    return;
  }
  if ((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
    pMVar4 = connection->prevX;
    pMVar22 = connection->nextX;
    if (connection->connection_timeout == pMVar32->connection_timeout) {
      if (pMVar4 == (MHD_Connection *)0x0) {
        pMVar32->normal_timeout_head = pMVar22;
      }
      else {
        pMVar4->nextX = pMVar22;
      }
      pMVar4 = connection->nextX;
      pMVar22 = connection->prevX;
      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;
      pMVar32->normal_timeout_tail = pMVar22;
      connection->nextX = (MHD_Connection *)0x0;
      connection->prevX = (MHD_Connection *)0x0;
    }
    else {
      if (pMVar4 == (MHD_Connection *)0x0) {
        pMVar32->manual_timeout_head = pMVar22;
      }
      else {
        pMVar4->nextX = pMVar22;
      }
      pMVar4 = connection->nextX;
      pMVar22 = connection->prevX;
      if (pMVar4 == (MHD_Connection *)0x0) {
        pMVar32->manual_timeout_tail = pMVar22;
        connection->nextX = (MHD_Connection *)0x0;
        connection->prevX = (MHD_Connection *)0x0;
      }
      else {
LAB_0001b770:
        pMVar4->prevX = pMVar22;
        connection->nextX = (MHD_Connection *)0x0;
        connection->prevX = (MHD_Connection *)0x0;
      }
    }
  }
  if (connection->prev == (MHD_Connection *)0x0) {
    pMVar32->connections_head = connection->next;
    pMVar4 = connection->next;
    pMVar22 = connection->prev;
    if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;
LAB_0001b798:
    pMVar4->prev = pMVar22;
    connection->next = (MHD_Connection *)0x0;
    connection->prev = (MHD_Connection *)0x0;
    pMVar4 = pMVar32->suspended_connections_head;
    connection->next = pMVar4;
    if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;
LAB_0001b88c:
    pMVar32->suspended_connections_tail = connection;
  }
  else {
    connection->prev->next = connection->next;
    pMVar4 = connection->next;
    pMVar22 = connection->prev;
    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;
LAB_0001b86c:
    pMVar32->connections_tail = pMVar22;
    connection->next = (MHD_Connection *)0x0;
    connection->prev = (MHD_Connection *)0x0;
    pMVar4 = pMVar32->suspended_connections_head;
    connection->next = pMVar4;
    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;
LAB_0001b7b8:
    pMVar4->prev = connection;
  }
  pMVar32->suspended_connections_head = connection;
  connection->suspended = true;
  if ((pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {
    MVar5 = connection->epoll_state;
    if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {
      if (connection->prevE == (MHD_Connection *)0x0) {
        pMVar32->eready_head = connection->nextE;
      }
      else {
        connection->prevE->nextE = connection->nextE;
      }
      if (connection->nextE == (MHD_Connection *)0x0) {
        pMVar32->eready_tail = connection->prevE;
      }
      else {
        connection->nextE->prevE = connection->prevE;
      }
      connection->nextE = (MHD_Connection *)0x0;
      connection->prevE = (MHD_Connection *)0x0;
      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;
      connection->epoll_state = MVar5;
    }
    if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;
    connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;
  }
  while( true ) {
    iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);
    if (iVar3 == 0) {
      return;
    }
LAB_0001b988:
    uVar25 = 0xab8;
LAB_0001b8ac:
    (**(code **)PTR_mhd_panic_0003f070)
              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,
               PTR_DAT_0003f05c + -0x51b8);
LAB_0001b8d0:
    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);
    if (iVar3 != 0) break;
    connection->epoll_state =
         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;
  }
  pMVar4 = *(MHD_Connection **)PTR_mhd_panic_cls_0003f068;
  pcVar39 = *(code **)PTR_mhd_panic_0003f070;
  (*pcVar39)(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);
  if ((pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG) {
    if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {
      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));
      return;
    }
    internal_suspend_connection_(pMVar4);
    return;
  }
  pMVar20 = (MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0);
  pcVar40 = (code *)**(undefined4 **)(pcVar39 + 0x236b8);
  (*pcVar40)(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,
             *(int *)(pcVar39 + 0x236a4) + -0x359c);
  pMVar30 = (MHD_Daemon *)pMVar20->cleanup_head;
  if ((pMVar30->options & 0x2000) == MHD_NO_FLAG) {
    (*(code *)**(undefined4 **)(pcVar40 + 0x23638))
              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,
               *(int *)(pcVar40 + 0x23624) + -0x3514);
    pMVar20 = pMVar32;
  }
  else {
    pMVar34 = &pMVar30->cleanup_connection_mutex;
    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);
    if (iVar3 != 0) goto LAB_0001bb7c;
    pcVar39 = *(code **)(pcVar40 + 0x23904);
    *(undefined1 *)&pMVar20->port = 1;
    pMVar30->resuming = true;
    iVar3 = (*pcVar39)(pMVar34);
    if (iVar3 == 0) {
      iVar3 = (pMVar30->itc).fd;
      if (((iVar3 != -1) &&
          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),
          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {
        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));
        return;
      }
      return;
    }
  }
  (*(code *)**(undefined4 **)(pcVar40 + 0x23638))
            (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,
             *(int *)(pcVar40 + 0x23624) + -0x51b8);
LAB_0001bb7c:
  connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630);
  pMVar28 = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0);
  pcVar39 = (code *)**(undefined4 **)(pcVar40 + 0x23638);
  p = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0);
  (*pcVar39)(connection_00,p,0xb01);
  piVar6 = *(int **)(pcVar39 + 0x23748);
  puVar36 = auStack_3b0 + 0xc;
  uVar25 = 0x8000001f;
  daemon = (MHD_Daemon *)connection_00->cleanup_head;
  pMStack_9c = (MHD_Daemon *)*piVar6;
  pMVar33 = (MHD_Daemon *)(daemon->options & MHD_USE_POLL);
  pMStack_98 = pMVar30;
  pMStack_94 = pMVar20;
  pMStack_90 = pMVar34;
  pvVar7 = (void *)(**(code **)(pcVar39 + 0x23740))();
  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);
  connection_00->uri_log_callback_cls = pvVar7;
  pMVar20 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974);
  pMVar32 = (MHD_Daemon *)0x0;
LAB_0001bc2c:
  pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown;
  if (pMVar30 != (MHD_Daemon *)0x0) {
joined_r0x0001bdcc:
    if (iVar3 != 0x13) {
      p = (MHD_Daemon *)0x3;
      if (daemon->shutdown == false) {
        p = (MHD_Daemon *)0x1;
      }
      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);
    }
LAB_0001bdfc:
    MHD_connection_handle_idle((MHD_Connection *)connection_00);
LAB_0001bcc4:
    if (connection_00->eready_tail != (MHD_Connection *)0x0) {
      (**(code **)(pcVar39 + 0x23734))();
      connection_00->eready_tail = (MHD_Connection *)0x0;
    }
    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {
      p = (MHD_Daemon *)0x1;
      (**(code **)(pcVar39 + 0x235c4))();
    }
    pMVar26 = (MHD_Daemon *)0x8;
    if ((daemon->itc).fd != -1) {
      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);
      iVar3 = (**(code **)(pcVar39 + 0x2367c))();
      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {
        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);
        MHD_DLOG(daemon,(char *)p);
      }
    }
    goto LAB_0001bd0c;
  }
  if (iVar3 == 0x13) goto LAB_0001bdfc;
  unaff_s6 = (MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1);
  unaff_s7 = (MHD_Daemon *)daemon->connection_timeout;
  if ((unaff_s6 != (MHD_Daemon *)0x0) &&
     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,
     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)) {
    pMVar4 = (MHD_Connection *)(daemon->itc).fd;
    pMVar32 = unaff_s6;
    if (pMVar33 == (MHD_Daemon *)0x0) {
      p = (MHD_Daemon *)(auStack_3b0 + 0x14);
      pMVar28 = p;
      do {
        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;
        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;
      } while (pMVar28 != (MHD_Daemon *)auStack_31c);
      pMVar28 = (MHD_Daemon *)0x400;
      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);
      if (iVar3 == 0) goto LAB_0001c364;
      pMVar28 = (MHD_Daemon *)0x0;
      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);
      if (-1 < iVar3) goto LAB_0001c380;
      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();
      pMVar26 = (MHD_Daemon *)*puVar14;
      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;
      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;
      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);
      pMVar30 = pMVar26;
      pMVar33 = pMVar32;
LAB_0001c18c:
      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);
      MHD_DLOG(pMVar32,(char *)p,pMVar26);
      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;
      goto joined_r0x0001bdcc;
    }
    p = (MHD_Daemon *)0x1;
    auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;
    auStack_3b0._12_4_ = pMVar4;
    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);
    if (iVar3 < 0) {
      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();
      if (*piVar11 != 4) {
LAB_0001bd98:
        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;
        uVar8 = (**(code **)(pcVar39 + 0x236b0))();
        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);
        MHD_DLOG(pMVar30,(char *)p,uVar8);
        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);
        goto joined_r0x0001bdcc;
      }
LAB_0001c13c:
      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);
    }
    else {
LAB_0001c380:
      p = (MHD_Daemon *)auStack_3b0;
      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);
      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;
    }
    goto LAB_0001bc2c;
  }
  if (pMVar32 != (MHD_Daemon *)0x0) {
    MHD_update_last_activity_((MHD_Connection *)connection_00);
    MHD_connection_handle_idle((MHD_Connection *)connection_00);
  }
  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);
  pMVar32 = (MHD_Daemon *)0x0;
  if ((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))
  {
    if (0 < (int)unaff_s7) {
      tVar10 = MHD_monotonic_sec_counter();
      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;
      if ((int)unaff_s7 < iVar3) {
        unaff_s7 = (MHD_Daemon *)0x0;
      }
      else {
        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);
      }
      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);
      pMStack_3b8 = unaff_s7;
      goto LAB_0001bc90;
    }
    ppMVar29 = (MHD_Daemon **)0x0;
    if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;
LAB_0001bc98:
    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];
    auStack_3b0._16_4_ = (MHD_Connection *)0x0;
    if (iVar3 == 1) {
      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;
    }
    else if (iVar3 == 0) {
      auStack_3b0._16_4_ = &DAT_00030000;
    }
    else if (iVar3 == 2) {
      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;
    }
    else if (iVar3 == 3) goto LAB_0001bcc4;
    if (ppMVar29 == (MHD_Daemon **)0x0) {
      iVar3 = -1;
    }
    else {
      iVar3 = (int)pMStack_3b8 * 1000;
    }
    p = (MHD_Daemon *)0x1;
    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);
    if (iVar3 < 0) {
      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();
      if (*piVar11 != 4) goto LAB_0001bd98;
LAB_0001c1b0:
      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;
    }
    else {
      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);
      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;
      pMVar28 = (MHD_Daemon *)(uint)bVar1;
      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);
      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),
                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);
      if (iVar3 == 0) goto LAB_0001bcc4;
      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);
      if (iVar3 == 0x14) goto LAB_0001c01c;
    }
    goto LAB_0001bc2c;
  }
  pMStack_3b8 = (MHD_Daemon *)0x0;
LAB_0001bc90:
  uStack_3b4 = 0;
  ppMVar29 = &pMStack_3b8;
  if (pMVar33 != (MHD_Daemon *)0x0) goto LAB_0001bc98;
LAB_0001be20:
  set = (MHD_Daemon *)(auStack_3b0 + 0x14);
  unaff_s6 = (MHD_Daemon *)auStack_31c;
  pMVar26 = set;
  do {
    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;
    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;
  } while (unaff_s6 != pMVar26);
  unaff_s7 = (MHD_Daemon *)(auStack_31c + 0x80);
  pMVar26 = unaff_s6;
  do {
    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;
    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;
    pMVar9 = unaff_s7;
  } while (unaff_s7 != pMVar26);
  do {
    pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;
    pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;
  } while (&MStack_21c != pMVar9);
  MStack_3c0 = -1;
  if (iVar3 != 1) {
    if (iVar3 == 0) {
      pMVar28 = (MHD_Daemon *)0x400;
      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,
                                 (fd_set *)set,&MStack_3c0,0x400);
      if (iVar3 != 0) {
        iVar15 = MStack_3c0 + 1;
        goto LAB_0001be8c;
      }
LAB_0001c364:
      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);
      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);
    }
    else {
      if (iVar3 == 2) {
        pMVar28 = (MHD_Daemon *)0x400;
        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,
                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);
        if (iVar3 != 0) goto LAB_0001c1ec;
        goto LAB_0001c364;
      }
      iVar15 = 0;
      if (iVar3 != 3) goto LAB_0001be8c;
    }
    goto LAB_0001bcc4;
  }
  pMVar28 = (MHD_Daemon *)0x400;
  iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,
                             (fd_set *)unaff_s6,&MStack_3c0,0x400);
  if (iVar3 == 0) goto LAB_0001c364;
LAB_0001c1ec:
  iVar15 = MStack_3c0 + 1;
LAB_0001be8c:
  pMVar28 = unaff_s7;
  iVar3 = (**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6);
  if (iVar3 < 0) {
    puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();
    pMVar26 = (MHD_Daemon *)*puVar14;
    p = set;
    unaff_s6 = pMVar26;
    if (pMVar26 != (MHD_Daemon *)0x4) {
      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;
      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);
      pMVar30 = pMVar32;
      goto LAB_0001c18c;
    }
    goto LAB_0001c1b0;
  }
  iVar3 = (**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4]);
  bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &
          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0;
  unaff_s6 = (MHD_Daemon *)(uint)bVar1;
  iVar3 = (**(code **)(pcVar39 + 0x23708))();
  write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &
                *(uint *)(auStack_31c + iVar3 * 4)) != 0;
  unaff_s7 = (MHD_Daemon *)(uint)write_ready;
  iVar3 = (**(code **)(pcVar39 + 0x23708))();
  force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &
                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0;
  pMVar28 = (MHD_Daemon *)(uint)force_close;
  p = unaff_s6;
  pMVar26 = unaff_s7;
  iVar3 = call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close);
  if (iVar3 == 0) goto LAB_0001bcc4;
  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);
  if (iVar3 != 0x14) goto LAB_0001bc2c;
LAB_0001c01c:
  if ((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&
     (pMVar28 = (MHD_Daemon *)0x0,
     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {
    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;
    p = connection_00;
    (*daemon->notify_completed)
              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,
               MHD_REQUEST_TERMINATED_COMPLETED_OK);
  }
  pMVar4 = connection_00->cleanup_head;
  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;
  uVar21 = pMVar4->suspended_dummy;
  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;
  if ((uVar21 & 0x42) == 2) {
    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);
    pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));
    daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);
    do {
      while( true ) {
        unaff_s7 = &MStack_21c;
        pMVar32 = unaff_s7;
        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&
             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,
             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&
            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&
           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;
        do {
          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;
          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;
          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;
          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;
          psVar12 = (size_t *)pMVar20;
        } while (pMVar20 != pMVar32);
        do {
          *psVar12 = 0;
          psVar12 = psVar12 + 1;
          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;
        } while (pMVar30 != (MHD_Daemon *)psVar12);
        do {
          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;
          ppMVar13 = ppMVar13 + 1;
          puVar36 = (undefined1 *)0xffffffff;
        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);
        MStack_3bc = -1;
        pMVar26 = pMVar20;
        pMVar28 = pMVar30;
        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,
                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);
        if (CONCAT31(extraout_var,_Var18) == 0) {
          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);
          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);
          goto LAB_0001c074;
        }
        if (MStack_3bc != -1) break;
LAB_0001c4bc:
        pMVar28 = pMVar30;
        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,
                       (fd_set *)pMVar30);
        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);
        p = unaff_s7;
        pMVar26 = pMVar20;
      }
      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&
         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {
        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;
        auStack_3b0._4_4_ = (void *)0x0;
      }
      p = unaff_s7;
      pMVar26 = pMVar20;
      pMVar28 = pMVar30;
      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);
      if (-1 < iVar3) goto LAB_0001c4bc;
      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();
      pMVar30 = (MHD_Daemon *)*puVar14;
    } while (pMVar30 == (MHD_Daemon *)0x4);
    daemon = (MHD_Daemon *)connection_00->cleanup_head;
    pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);
    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);
    pMVar26 = pMVar30;
    MHD_DLOG(daemon,(char *)p);
  }
  else if ((uVar21 & 2) != 0) {
    p = (MHD_Daemon *)&MStack_21c.strict_for_client;
    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;
    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));
    MStack_21c.priority_cache = (gnutls_priority_t)0x0;
    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));
    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);
    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);
    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;
    do {
      while( true ) {
        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&
            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&
           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&
            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))
        goto LAB_0001c074;
        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);
        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {
          pMVar26 = (MHD_Daemon *)0xffffffff;
        }
        else {
          pMVar26 = (MHD_Daemon *)
                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);
        }
        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);
        if (iVar3 < 0) break;
        pMVar32 = unaff_s6;
        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);
        process_urh((MHD_UpgradeResponseHandle *)pMVar32);
      }
      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();
    } while (*piVar11 == 4);
    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;
    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();
    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);
    MHD_DLOG(pMVar30,(char *)p);
  }
LAB_0001c074:
  MHD_connection_finish_forward_((MHD_Connection *)connection_00);
  pcVar40 = *(code **)(pcVar39 + 0x23698);
  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;
  (*pcVar40)(connection_00);
LAB_0001bd0c:
  if (pMStack_9c == (MHD_Daemon *)*piVar6) {
    return;
  }
  pcVar39 = *(code **)(pcVar39 + 0x23714);
  pcVar40 = internal_run_from_select;
  pMVar32 = pMStack_9c;
  (*pcVar39)();
  piVar6 = *(int **)(pcVar39 + 0x22c64);
  iVar3 = (pMVar32->itc).fd;
  pMStackY_41c = (MHD_Daemon *)*piVar6;
  pMVar32->data_already_pending = false;
  pMStackY_418 = pMVar30;
  pMStackY_414 = daemon;
  pMStackY_410 = pMVar33;
  uStackY_40c = uVar25;
  psStackY_408 = (size_t *)pMVar20;
  puStackY_404 = puVar36;
  pMStackY_400 = unaff_s6;
  pMStackY_3fc = unaff_s7;
  pMStackY_3f8 = connection_00;
  pcStackY_3f4 = pcVar40;
  if (iVar3 != -1) {
    iVar3 = (**(code **)(pcVar39 + 0x22c24))();
    uVar21 = (pMVar32->itc).fd;
    if ((int)uVar21 < 0) {
      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];
      pcVar40 = *(code **)(pcVar39 + 0x22c90);
    }
    else {
      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];
      pcVar40 = *(code **)(pcVar39 + 0x22c90);
    }
    if (uVar19 != 0) {
      (*pcVar40)(uVar21,auStackY_428,8);
    }
  }
  uVar21 = pMVar32->listen_fd;
  if ((uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false)) {
    iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);
    if ((int)uVar21 < 0) {
      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];
    }
    else {
      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];
    }
    if (uVar21 != 0) {
      MHD_accept_connection(pMVar32);
    }
  }
  if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&
     (pMVar32->connections_tail != (MHD_Connection *)0x0)) {
    iVar3 = *(int *)(pcVar39 + 0x229fc);
    pMVar4 = pMVar32->connections_tail;
    do {
      uVar21 = pMVar4->socket_fd;
      pMVar22 = pMVar4->prev;
      if (uVar21 != 0xffffffff) {
        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);
        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));
        p_Var23 = (&p->default_handler)[iVar15];
        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);
        p_Var27 = (&pMVar26->default_handler)[iVar15];
        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);
        (*(code *)(iVar3 + -0x7974))
                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,
                   ((uint)unaff_s7 & (uint)p_Var27) != 0,
                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);
      }
      pMVar4 = pMVar22;
    } while (pMVar22 != (MHD_Connection *)0x0);
  }
  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {
    unaff_s7 = (MHD_Daemon *)0x1;
    pMVar17 = pMVar32->urh_tail;
    do {
      pMVar31 = pMVar17->prev;
      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);
      process_urh(pMVar17);
      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&
          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {
        MHD_connection_finish_forward_(pMVar17->connection);
        pcVar40 = *(code **)(pcVar39 + 0x22bb4);
        pMVar17->clean_ready = true;
        (*pcVar40)(pMVar17->connection);
      }
      pMVar17 = pMVar31;
    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);
  }
  MHD_cleanup_connections(pMVar32);
  if (pMStackY_41c == (MHD_Daemon *)*piVar6) {
    return;
  }
  pcVar39 = *(code **)(pcVar39 + 0x22c30);
  pMVar32 = pMStackY_41c;
  (*pcVar39)();
  MVar38 = pMVar32->options;
  MVar37 = MVar38 & MHD_USE_THREAD_PER_CONNECTION;
  pMVar34 = (MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE);
  MVar16 = MVar38;
  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {
    unaff_s7 = (MHD_Daemon *)0x1;
    pMVar17 = pMVar32->urh_tail;
    do {
      pMVar31 = pMVar17->prev;
      process_urh(pMVar17);
      MHD_connection_finish_forward_(pMVar17->connection);
      pMVar17->clean_ready = true;
      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);
      pMVar17 = pMVar31;
    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);
    p = (MHD_Daemon *)0x0;
    MVar16 = pMVar32->options;
  }
  if ((MVar16 & 0x2000) != MHD_NO_FLAG) {
    pMVar32->resuming = true;
    resume_suspended_connections(pMVar32);
  }
  pMVar35 = &pMVar32->cleanup_connection_mutex;
  iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);
  uVar25 = 0x191e;
  if (iVar3 != 0) goto LAB_0001cf0c;
  if (pMVar34 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;
  pMVar4 = pMVar32->suspended_connections_tail;
  if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cba0;
  pMVar17 = pMVar4->urh;
  MVar38 = MVar38 & MHD_USE_SSL;
  if (pMVar17 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;
  p = (MHD_Daemon *)0x1;
  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014);
LAB_0001cb18:
  if (MVar38 == MHD_NO_FLAG) goto LAB_0001cd7c;
  if (MVar37 == MHD_NO_FLAG) {
    if (pMVar17->was_closed == false) goto LAB_0001cdb0;
    pMVar4->urh->was_closed = SUB41(p,0);
    goto LAB_0001cd9c;
  }
  if (pMVar17->clean_ready == false) {
    (**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);
    goto LAB_0001cb54;
  }
  if (pMVar17->was_closed == false) goto LAB_0001cdb0;
  pMVar4->urh->was_closed = SUB41(p,0);
LAB_0001cb4c:
  pMVar4->resuming = SUB41(p,0);
  pMVar32->resuming = SUB41(p,0);
LAB_0001cb54:
  pMVar4 = pMVar4->prev;
  if (pMVar4 != (MHD_Connection *)0x0) {
    pMVar17 = pMVar4->urh;
    if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;
LAB_0001cb6c:
    uVar25 = 0x1929;
    do {
      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))
                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,
                 *(int *)(pcVar39 + 0x22638) + -0x33d0);
LAB_0001cb94:
      uVar25 = 0x1948;
    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);
  }
LAB_0001cba0:
  pMVar4 = pMVar32->connections_tail;
  pcVar40 = *(code **)(pcVar39 + 0x22918);
  if (pMVar4 != (MHD_Connection *)0x0) {
    do {
      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);
      pMVar4 = pMVar4->prev;
    } while (pMVar4 != (MHD_Connection *)0x0);
    pcVar40 = *(code **)(pcVar39 + 0x22918);
    pMVar4 = (MHD_Connection *)0x0;
    if ((MVar37 != MHD_NO_FLAG) &&
       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {
      p = (MHD_Daemon *)0x1;
      do {
        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {
          iVar3 = (*pcVar40)(pMVar35);
          if (iVar3 != 0) {
            uVar25 = 0x195e;
            goto LAB_0001cd58;
          }
          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);
          if (iVar3 != 0) goto LAB_0001cf30;
          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);
          if (iVar3 != 0) {
            uVar25 = 0x1961;
            goto LAB_0001cf0c;
          }
          pMVar4->thread_joined = true;
          pMVar4 = pMVar32->connections_tail;
          pcVar40 = *(code **)(pcVar39 + 0x22918);
          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;
        }
        pMVar4 = pMVar4->prev;
      } while (pMVar4 != (MHD_Connection *)0x0);
    }
  }
LAB_0001cc48:
  iVar3 = (*pcVar40)(pMVar35);
  if (iVar3 == 0) {
    if (pMVar34 != (MHD_mutex_ *)0x0) {
      pMVar32->resuming = true;
      resume_suspended_connections(pMVar32);
    }
    do {
      pMVar4 = pMVar32->connections_tail;
      while( true ) {
        if (pMVar4 == (MHD_Connection *)0x0) {
          MHD_cleanup_connections(pMVar32);
          return;
        }
        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&
           (pMVar4->thread_joined == false)) goto LAB_0001cf30;
        p = pMVar4->daemon;
        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;
        MHD_connection_mark_closed_(pMVar4);
        pMVar4 = pMVar32->connections_tail;
      }
      pMVar34 = &p->cleanup_connection_mutex;
      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);
      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);
      if (iVar3 != 0) {
        do {
          uVar25 = 0x11ca;
LAB_0001cf0c:
          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))
                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,
                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);
LAB_0001cf30:
          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))
                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);
        } while( true );
      }
      pMVar22 = pMVar4->prevX;
      pMVar24 = pMVar4->nextX;
      if (pMVar4->connection_timeout == p->connection_timeout) {
        if (pMVar22 == (MHD_Connection *)0x0) {
          p->normal_timeout_head = pMVar24;
        }
        else {
          pMVar22->nextX = pMVar24;
        }
        pMVar22 = pMVar4->nextX;
        pMVar24 = pMVar4->prevX;
        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;
        p->normal_timeout_tail = pMVar24;
LAB_0001ccf4:
        pMVar22 = pMVar4->prev;
        pMVar24 = pMVar4->next;
        pMVar4->nextX = (MHD_Connection *)0x0;
        pMVar4->prevX = (MHD_Connection *)0x0;
        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;
LAB_0001cdfc:
        p->connections_head = pMVar24;
        pMVar22 = pMVar4->next;
        pMVar24 = pMVar4->prev;
        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;
LAB_0001cd18:
        pMVar22->prev = pMVar24;
        pMVar4->next = (MHD_Connection *)0x0;
        pMVar4->prev = (MHD_Connection *)0x0;
        pMVar22 = p->cleanup_head;
        pMVar4->next = pMVar22;
        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;
LAB_0001ce2c:
        p->cleanup_tail = pMVar4;
      }
      else {
        if (pMVar22 == (MHD_Connection *)0x0) {
          p->manual_timeout_head = pMVar24;
        }
        else {
          pMVar22->nextX = pMVar24;
        }
        pMVar22 = pMVar4->nextX;
        pMVar24 = pMVar4->prevX;
        if (pMVar22 != (MHD_Connection *)0x0) {
LAB_0001ccf0:
          pMVar22->prevX = pMVar24;
          goto LAB_0001ccf4;
        }
        p->manual_timeout_tail = pMVar24;
        pMVar4->nextX = (MHD_Connection *)0x0;
        pMVar4->prevX = (MHD_Connection *)0x0;
        pMVar22 = pMVar4->prev;
        pMVar24 = pMVar4->next;
        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;
LAB_0001cd08:
        pMVar22->next = pMVar24;
        pMVar22 = pMVar4->next;
        pMVar24 = pMVar4->prev;
        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;
LAB_0001ce0c:
        p->connections_tail = pMVar24;
        pMVar4->next = (MHD_Connection *)0x0;
        pMVar4->prev = (MHD_Connection *)0x0;
        pMVar22 = p->cleanup_head;
        pMVar4->next = pMVar22;
        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;
LAB_0001cd38:
        pMVar22->prev = pMVar4;
      }
      pcVar40 = *(code **)(pcVar39 + 0x22918);
      p->cleanup_head = pMVar4;
      iVar3 = (*pcVar40)(pMVar34);
    } while (iVar3 == 0);
    uVar25 = 0x11dd;
  }
  else {
    uVar25 = 0x196b;
  }
LAB_0001cd58:
  pMVar17 = (MHD_UpgradeResponseHandle *)
            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))
                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,
                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8);
LAB_0001cd7c:
  if (pMVar17->was_closed == false) {
LAB_0001cdb0:
    MHD_DLOG(pMVar32,(char *)unaff_s7);
  }
  pMVar4->urh->was_closed = SUB41(p,0);
  if (MVar37 == MHD_NO_FLAG) {
LAB_0001cd9c:
    MHD_connection_finish_forward_(pMVar4);
  }
  goto LAB_0001cb4c;
}



/* WARNING: Type propagation algorithm not settling */

int FUN_0001b6e4(int *param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int *piVar4;
  int ******ppppppiVar5;
  undefined4 uVar6;
  int *******pppppppiVar7;
  int *******pppppppiVar8;
  undefined4 *puVar9;
  int ******ppppppiVar10;
  int *******pppppppiVar11;
  int *****pppppiVar12;
  int iVar13;
  int *******pppppppiVar14;
  undefined4 uVar15;
  int *******pppppppiVar16;
  int *******pppppppiVar17;
  int *******pppppppiVar18;
  int *****pppppiVar19;
  int iVar20;
  int ******ppppppiVar21;
  undefined4 *puVar22;
  int iVar23;
  int *******pppppppiVar24;
  int *******pppppppiVar25;
  int *******pppppppiVar26;
  int ******ppppppiVar27;
  int ****ppppiVar28;
  uint uVar29;
  int *******unaff_s6;
  uint uVar30;
  int *******unaff_s7;
  code *pcVar31;
  code *pcVar32;
  undefined1 auStack_428 [12];
  int iStack_41c;
  int *******pppppppiStack_418;
  int ******ppppppiStack_414;
  int *******pppppppiStack_410;
  undefined4 uStack_40c;
  int *******pppppppiStack_408;
  int ******ppppppiStack_404;
  int *******pppppppiStack_400;
  int *******pppppppiStack_3fc;
  int *******pppppppiStack_3f8;
  code *pcStack_3f4;
  int *******pppppppiStack_3e0;
  undefined4 uStack_3dc;
  code *pcStack_3d8;
  int *piStack_3cc;
  int *******pppppppiStack_3c8;
  int *******pppppppiStack_3c4;
  int iStack_3c0;
  int ******ppppppiStack_3bc;
  int *******pppppppiStack_3b8;
  undefined4 uStack_3b4;
  int ******ppppppiStack_3b0;
  undefined4 uStack_3ac;
  int ******ppppppiStack_3a4;
  undefined4 uStack_3a0;
  int ******appppppiStack_39c [32];
  int ******appppppiStack_31c [32];
  int ******appppppiStack_29c [32];
  int ******appppppiStack_21c [32];
  int ******appppppiStack_19c [32];
  int ******appppppiStack_11c [32];
  int ******ppppppiStack_9c;
  int iStack_98;
  int iStack_94;
  int iStack_90;
  
  iVar20 = param_1[6];
  iVar23 = iVar20 + 0xac;
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);
  puVar1 = PTR_pthread_mutex_unlock_0003f33c;
  if (iVar2 != 0) {
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,
               PTR_DAT_0003f05c + -0x51e0);
    goto LAB_0001b988;
  }
  if (*(char *)(param_1 + 0x3f) != '\0') {
    *(undefined1 *)(param_1 + 0x3f) = 0;
    iVar2 = (*(code *)puVar1)(iVar23);
    uVar15 = 0xa8a;
    if (iVar2 != 0) goto LAB_0001b8ac;
    return 0;
  }
  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {
    iVar2 = param_1[5];
    iVar13 = param_1[4];
    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {
      if (iVar2 == 0) {
        *(int *)(iVar20 + 0x30) = iVar13;
      }
      else {
        *(int *)(iVar2 + 0x10) = iVar13;
      }
      iVar2 = param_1[4];
      iVar13 = param_1[5];
      if (iVar2 != 0) goto LAB_0001b770;
      *(int *)(iVar20 + 0x34) = iVar13;
      param_1[4] = 0;
      param_1[5] = 0;
    }
    else {
      if (iVar2 == 0) {
        *(int *)(iVar20 + 0x38) = iVar13;
      }
      else {
        *(int *)(iVar2 + 0x10) = iVar13;
      }
      iVar2 = param_1[4];
      iVar13 = param_1[5];
      if (iVar2 == 0) {
        *(int *)(iVar20 + 0x3c) = iVar13;
        param_1[4] = 0;
        param_1[5] = 0;
      }
      else {
LAB_0001b770:
        *(int *)(iVar2 + 0x14) = iVar13;
        param_1[4] = 0;
        param_1[5] = 0;
      }
    }
  }
  if (param_1[3] == 0) {
    *(int *)(iVar20 + 8) = param_1[2];
    iVar2 = param_1[2];
    iVar13 = param_1[3];
    if (iVar2 == 0) goto LAB_0001b86c;
LAB_0001b798:
    *(int *)(iVar2 + 0xc) = iVar13;
    param_1[2] = 0;
    param_1[3] = 0;
    iVar2 = *(int *)(iVar20 + 0x10);
    param_1[2] = iVar2;
    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;
LAB_0001b88c:
    *(int **)(iVar20 + 0x14) = param_1;
  }
  else {
    *(int *)(param_1[3] + 8) = param_1[2];
    iVar2 = param_1[2];
    iVar13 = param_1[3];
    if (iVar2 != 0) goto LAB_0001b798;
LAB_0001b86c:
    *(int *)(iVar20 + 0xc) = iVar13;
    param_1[2] = 0;
    param_1[3] = 0;
    iVar2 = *(int *)(iVar20 + 0x10);
    param_1[2] = iVar2;
    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;
LAB_0001b7b8:
    *(int **)(iVar2 + 0xc) = param_1;
  }
  *(int **)(iVar20 + 0x10) = param_1;
  *(undefined1 *)((int)param_1 + 0xf5) = 1;
  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {
    uVar3 = param_1[0x2c];
    if ((uVar3 & 4) != 0) {
      if ((int *)param_1[1] == (int *)0x0) {
        *(int *)(iVar20 + 0x20) = *param_1;
      }
      else {
        *(int *)param_1[1] = *param_1;
      }
      if (*param_1 == 0) {
        *(int *)(iVar20 + 0x24) = param_1[1];
      }
      else {
        *(int *)(*param_1 + 4) = param_1[1];
      }
      *param_1 = 0;
      param_1[1] = 0;
      uVar3 = param_1[0x2c] & 0xfffffffb;
      param_1[0x2c] = uVar3;
    }
    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;
    param_1[0x2c] = uVar3 | 0x10;
  }
  while( true ) {
    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);
    if (iVar2 == 0) {
      return 0;
    }
LAB_0001b988:
    uVar15 = 0xab8;
LAB_0001b8ac:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,
               PTR_DAT_0003f05c + -0x51b8);
LAB_0001b8d0:
    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);
    if (iVar2 != 0) break;
    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;
  }
  iVar2 = *(int *)PTR_DAT_0003f068;
  pcVar31 = *(code **)PTR_DAT_0003f070;
  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);
  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {
    if (*(int *)(iVar2 + 0xe0) != 0) {
      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);
      return iVar2;
    }
    iVar2 = FUN_0001b6e4();
    return iVar2;
  }
  iVar2 = **(int **)(pcVar31 + 0x236b0);
  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);
  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c
            );
  iVar13 = *(int *)(iVar2 + 0x18);
  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {
    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))
              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,
               *(int *)(pcVar32 + 0x23624) + -0x3514);
    iVar2 = iVar20;
  }
  else {
    iVar23 = iVar13 + 0xac;
    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);
    if (iVar20 != 0) goto LAB_0001bb7c;
    pcVar31 = *(code **)(pcVar32 + 0x23904);
    *(undefined1 *)(iVar2 + 0xfc) = 1;
    *(undefined1 *)(iVar13 + 0xe3) = 1;
    iVar20 = (*pcVar31)(iVar23);
    if (iVar20 == 0) {
      iVar2 = -1;
      if ((*(int *)(iVar13 + 0xdc) != -1) &&
         (iVar2 = (**(code **)(pcVar32 + 0x237e8))
                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),
         iVar2 < 1)) {
        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();
        iVar2 = *piVar4;
        if (iVar2 != 0xb) {
          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);
          return iVar2;
        }
      }
      return iVar2;
    }
  }
  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))
            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,
             *(int *)(pcVar32 + 0x23624) + -0x51b8);
LAB_0001bb7c:
  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);
  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);
  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);
  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);
  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);
  pcStack_3d8 = pcVar31 + 0x2b48c;
  piStack_3cc = *(int **)(pcVar31 + 0x23748);
  ppppppiVar27 = (int ******)&ppppppiStack_3a4;
  uVar15 = 0x8000001f;
  ppppppiVar21 = pppppppiVar11[6];
  ppppppiStack_9c = (int ******)*piStack_3cc;
  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);
  iStack_98 = iVar13;
  iStack_94 = iVar2;
  iStack_90 = iVar23;
  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();
  ppppppiVar10 = pppppppiVar11[0x2d];
  pppppppiVar11[0x17] = ppppppiVar5;
  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);
  pppppppiVar25 = (int *******)0x0;
LAB_0001bc2c:
  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);
  if (pppppppiVar18 != (int *******)0x0) {
joined_r0x0001bdcc:
    if (ppppppiVar10 != (int ******)0x13) {
      pppppppiVar14 = (int *******)0x3;
      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {
        pppppppiVar14 = (int *******)0x1;
      }
      FUN_00014148(pppppppiVar11);
    }
LAB_0001bdfc:
    FUN_00015e38(pppppppiVar11);
LAB_0001bcc4:
    if (pppppppiVar11[9] != (int ******)0x0) {
      (**(code **)(pcStack_3d8 + -0x7d58))();
      pppppppiVar11[9] = (int ******)0x0;
    }
    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {
      pppppppiVar14 = (int *******)0x1;
      (**(code **)(pcStack_3d8 + -0x7ec8))();
    }
    pppppppiVar16 = (int *******)0x8;
    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {
      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);
      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();
      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {
        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);
        FUN_00020df0(ppppppiVar21);
      }
    }
    goto LAB_0001bd0c;
  }
  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;
  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);
  unaff_s7 = (int *******)ppppppiVar21[0x3c];
  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {
    ppppppiVar5 = (int ******)ppppppiVar21[0x37];
    pppppppiVar25 = unaff_s6;
    if (pppppppiVar24 == (int *******)0x0) {
      pppppppiStack_3c8 = appppppiStack_39c;
      pppppppiVar14 = pppppppiStack_3c8;
      do {
        *pppppppiVar14 = (int ******)0x0;
        pppppppiVar14 = pppppppiVar14 + 1;
      } while (pppppppiVar14 != appppppiStack_31c);
      pppppppiVar17 = (int *******)0x400;
      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);
      if (iVar2 == 0) goto LAB_0001c364;
      pppppppiVar17 = (int *******)0x0;
      pppppppiStack_3e0 = (int *******)0x0;
      pppppppiVar14 = pppppppiStack_3c8;
      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);
      if (-1 < iVar2) goto LAB_0001c380;
      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      pppppppiVar16 = (int *******)*puVar9;
      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;
      pppppppiVar25 = (int *******)pppppppiVar11[6];
      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);
      pppppppiVar18 = pppppppiVar16;
      pppppppiVar24 = pppppppiVar25;
LAB_0001c18c:
      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);
      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);
      ppppppiVar10 = pppppppiVar11[0x2d];
      goto joined_r0x0001bdcc;
    }
    pppppppiVar14 = (int *******)0x1;
    uStack_3a0 = 0x10000;
    ppppppiStack_3a4 = ppppppiVar5;
    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);
    if (iVar2 < 0) {
      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      if (*piVar4 != 4) {
LAB_0001bd98:
        pppppppiVar18 = (int *******)pppppppiVar11[6];
        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();
        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);
        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);
        ppppppiVar10 = pppppppiVar11[0x2d];
        goto joined_r0x0001bdcc;
      }
LAB_0001c13c:
      ppppppiVar10 = pppppppiVar11[0x2d];
    }
    else {
LAB_0001c380:
      pppppppiVar14 = &ppppppiStack_3b0;
      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);
      ppppppiVar10 = pppppppiVar11[0x2d];
    }
    goto LAB_0001bc2c;
  }
  if (pppppppiVar25 != (int *******)0x0) {
    FUN_0001478c(pppppppiVar11);
    FUN_00015e38(pppppppiVar11);
  }
  ppppppiVar5 = pppppppiVar11[0x2e];
  pppppppiVar25 = (int *******)0x0;
  if ((ppppppiVar5 != (int ******)0x2) &&
     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {
    if (0 < (int)unaff_s7) {
      iVar2 = FUN_0002186c();
      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {
        unaff_s7 = (int *******)0x0;
      }
      else {
        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));
      }
      ppppppiVar5 = pppppppiVar11[0x2e];
      pppppppiStack_3b8 = unaff_s7;
      goto LAB_0001bc90;
    }
    pppppppiVar16 = (int *******)0x0;
    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;
LAB_0001bc98:
    ppppppiStack_3a4 = pppppppiVar11[0x29];
    uStack_3a0 = 0;
    if (ppppppiVar5 == (int ******)0x1) {
      uStack_3a0 = 0x60000;
    }
    else if (ppppppiVar5 == (int ******)0x0) {
      uStack_3a0 = 0x30000;
    }
    else if (ppppppiVar5 == (int ******)0x2) {
      uStack_3a0 = 0x20000;
    }
    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;
    if (pppppppiVar16 == (int *******)0x0) {
      iVar2 = -1;
    }
    else {
      iVar2 = (int)pppppppiStack_3b8 * 1000;
    }
    pppppppiVar14 = (int *******)0x1;
    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);
    if (iVar2 < 0) {
      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      if (*piVar4 != 4) goto LAB_0001bd98;
LAB_0001c1b0:
      ppppppiVar10 = pppppppiVar11[0x2d];
    }
    else {
      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);
      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);
      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);
      iVar2 = FUN_0001868c(pppppppiVar11);
      if (iVar2 == 0) goto LAB_0001bcc4;
      ppppppiVar10 = pppppppiVar11[0x2d];
      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;
    }
    goto LAB_0001bc2c;
  }
  pppppppiStack_3b8 = (int *******)0x0;
LAB_0001bc90:
  uStack_3b4 = 0;
  pppppppiVar16 = (int *******)&pppppppiStack_3b8;
  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;
LAB_0001be20:
  unaff_s6 = appppppiStack_31c;
  pppppppiVar7 = appppppiStack_39c;
  do {
    *pppppppiVar7 = (int ******)0x0;
    pppppppiVar7 = pppppppiVar7 + 1;
  } while (unaff_s6 != pppppppiVar7);
  unaff_s7 = appppppiStack_29c;
  pppppppiVar7 = unaff_s6;
  do {
    *pppppppiVar7 = (int ******)0x0;
    pppppppiVar7 = pppppppiVar7 + 1;
    pppppppiVar8 = unaff_s7;
  } while (unaff_s7 != pppppppiVar7);
  do {
    *pppppppiVar8 = (int ******)0x0;
    pppppppiVar8 = pppppppiVar8 + 1;
  } while (appppppiStack_21c != pppppppiVar8);
  iStack_3c0 = -1;
  if (ppppppiVar5 != (int ******)0x1) {
    if (ppppppiVar5 == (int ******)0x0) {
      pppppppiVar17 = (int *******)0x400;
      pppppppiStack_3c8 = appppppiStack_39c;
      pppppppiStack_3c4 = pppppppiVar16;
      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);
      if (iVar2 != 0) {
        iVar2 = iStack_3c0 + 1;
        pppppppiVar7 = pppppppiStack_3c8;
        pppppppiVar16 = pppppppiStack_3c4;
        goto LAB_0001be8c;
      }
LAB_0001c364:
      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);
      FUN_00020df0(pppppppiVar11[6]);
    }
    else {
      if (ppppppiVar5 == (int ******)0x2) {
        pppppppiVar17 = (int *******)0x400;
        pppppppiStack_3c8 = pppppppiVar16;
        pppppppiStack_3c4 = appppppiStack_39c;
        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);
        if (iVar2 != 0) goto LAB_0001c1ec;
        goto LAB_0001c364;
      }
      iVar2 = 0;
      pppppppiVar7 = appppppiStack_39c;
      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;
    }
    goto LAB_0001bcc4;
  }
  pppppppiVar17 = (int *******)0x400;
  pppppppiStack_3c8 = pppppppiVar16;
  pppppppiStack_3c4 = appppppiStack_39c;
  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);
  if (iVar2 == 0) goto LAB_0001c364;
LAB_0001c1ec:
  iVar2 = iStack_3c0 + 1;
  pppppppiVar7 = pppppppiStack_3c4;
  pppppppiVar16 = pppppppiStack_3c8;
LAB_0001be8c:
  pppppppiVar14 = pppppppiVar7;
  pppppppiVar17 = unaff_s7;
  pppppppiStack_3e0 = pppppppiVar16;
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);
  if (iVar2 < 0) {
    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();
    pppppppiVar16 = (int *******)*puVar9;
    unaff_s6 = pppppppiVar16;
    if (pppppppiVar16 != (int *******)0x4) {
      pppppppiVar25 = (int *******)pppppppiVar11[6];
      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);
      pppppppiVar18 = pppppppiVar25;
      goto LAB_0001c18c;
    }
    goto LAB_0001c1b0;
  }
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);
  unaff_s6 = (int *******)
             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)
  ;
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();
  unaff_s7 = (int *******)
             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)
  ;
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();
  pppppppiVar17 =
       (int *******)
       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);
  pppppppiVar14 = unaff_s6;
  pppppppiVar16 = unaff_s7;
  iVar2 = FUN_0001868c(pppppppiVar11);
  if (iVar2 == 0) goto LAB_0001bcc4;
  ppppppiVar10 = pppppppiVar11[0x2d];
  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;
LAB_0001c01c:
  if ((ppppppiVar21[0x12] != (int *****)0x0) &&
     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {
    pppppppiVar16 = pppppppiVar11 + 0xb;
    pppppppiVar14 = pppppppiVar11;
    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);
  }
  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;
  unaff_s6 = (int *******)pppppppiVar11[0x38];
  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {
    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);
    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);
    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);
    do {
      while( true ) {
        unaff_s7 = appppppiStack_21c;
        pppppppiVar25 = unaff_s7;
        if ((((unaff_s6[8] == (int ******)0x0) &&
             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&
            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))
        goto LAB_0001c074;
        do {
          pppppppiVar26 = appppppiStack_19c;
          *pppppppiVar25 = (int ******)0x0;
          pppppppiVar25 = pppppppiVar25 + 1;
          pppppppiVar18 = appppppiStack_11c;
          pppppppiVar14 = pppppppiVar26;
        } while (pppppppiVar26 != pppppppiVar25);
        do {
          *pppppppiVar14 = (int ******)0x0;
          pppppppiVar14 = pppppppiVar14 + 1;
          pppppppiVar25 = pppppppiVar18;
        } while (pppppppiVar18 != pppppppiVar14);
        do {
          *pppppppiVar25 = (int ******)0x0;
          pppppppiVar25 = pppppppiVar25 + 1;
          ppppppiVar27 = (int ******)0xffffffff;
        } while (pppppppiVar25 != &ppppppiStack_9c);
        uStack_3dc = 0x400;
        pppppppiStack_3e0 = &ppppppiStack_3bc;
        ppppppiStack_3bc = (int ******)0xffffffff;
        pppppppiVar16 = pppppppiVar26;
        pppppppiVar17 = pppppppiVar18;
        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);
        if (iVar2 == 0) {
          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);
          FUN_00020df0(pppppppiVar11[6]);
          goto LAB_0001c074;
        }
        if (ppppppiStack_3bc != (int ******)0xffffffff) break;
LAB_0001c4bc:
        pppppppiVar17 = pppppppiVar18;
        FUN_00018420(unaff_s6);
        FUN_00018878(unaff_s6);
        pppppppiVar14 = unaff_s7;
        pppppppiVar16 = pppppppiVar26;
      }
      pppppppiStack_3e0 = (int *******)0x0;
      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&
         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {
        pppppppiStack_3e0 = &ppppppiStack_3b0;
        ppppppiStack_3b0 = (int ******)0x0;
        uStack_3ac = 0;
      }
      pppppppiVar14 = unaff_s7;
      pppppppiVar16 = pppppppiVar26;
      pppppppiVar17 = pppppppiVar18;
      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);
      if (-1 < iVar2) goto LAB_0001c4bc;
      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      pppppppiVar18 = (int *******)*puVar9;
    } while (pppppppiVar18 == (int *******)0x4);
    ppppppiVar21 = pppppppiVar11[6];
    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);
    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);
    pppppppiVar16 = pppppppiVar18;
    FUN_00020df0(ppppppiVar21);
  }
  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {
    pppppppiVar14 = appppppiStack_11c;
    appppppiStack_11c[1] = (int ******)0x0;
    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);
    appppppiStack_11c[3] = (int ******)0x0;
    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);
    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);
    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];
    appppppiStack_11c[2] = unaff_s6[0x10];
    do {
      while( true ) {
        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&
           ((unaff_s6[10] == (int ******)0x0 &&
            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;
        FUN_00017b40(unaff_s6);
        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {
          pppppppiVar16 = (int *******)0xffffffff;
        }
        else {
          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);
        }
        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);
        if (iVar2 < 0) break;
        FUN_00017c40(unaff_s6,pppppppiVar14);
        FUN_00018878();
      }
      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();
    } while (*piVar4 == 4);
    pppppppiVar18 = (int *******)pppppppiVar11[6];
    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();
    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);
    FUN_00020df0(pppppppiVar18);
  }
LAB_0001c074:
  FUN_00014600(pppppppiVar11);
  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);
  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;
  (*pcVar31)(pppppppiVar11);
LAB_0001bd0c:
  if (ppppppiStack_9c == (int ******)*piStack_3cc) {
    return 0;
  }
  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);
  pcVar32 = FUN_0001c688;
  ppppppiVar5 = ppppppiStack_9c;
  (*pcVar31)();
  piVar4 = *(int **)(pcVar31 + 0x22c64);
  iStack_41c = *piVar4;
  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;
  pppppppiStack_418 = pppppppiVar18;
  ppppppiStack_414 = ppppppiVar21;
  pppppppiStack_410 = pppppppiVar24;
  uStack_40c = uVar15;
  pppppppiStack_408 = pppppppiVar26;
  ppppppiStack_404 = ppppppiVar27;
  pppppppiStack_400 = unaff_s6;
  pppppppiStack_3fc = unaff_s7;
  pppppppiStack_3f8 = pppppppiVar11;
  pcStack_3f4 = pcVar32;
  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {
    iVar2 = (**(code **)(pcVar31 + 0x22c24))();
    pppppiVar12 = ppppppiVar5[0x37];
    if ((int)pppppiVar12 < 0) {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
      pcVar32 = *(code **)(pcVar31 + 0x22c90);
    }
    else {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
      pcVar32 = *(code **)(pcVar31 + 0x22c90);
    }
    if (uVar3 != 0) {
      (*pcVar32)(pppppiVar12,auStack_428,8);
    }
  }
  pppppiVar12 = ppppppiVar5[0x31];
  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {
    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);
    if ((int)pppppiVar12 < 0) {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
    }
    else {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
    }
    if (uVar3 != 0) {
      FUN_0001afec(ppppppiVar5);
    }
  }
  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {
    iVar2 = *(int *)(pcVar31 + 0x229fc);
    pppppiVar12 = ppppppiVar5[3];
    do {
      ppppiVar28 = pppppiVar12[0x29];
      pppppiVar19 = (int *****)pppppiVar12[3];
      if (ppppiVar28 != (int ****)0xffffffff) {
        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);
        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));
        ppppppiVar10 = pppppppiVar14[iVar20];
        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);
        ppppppiVar21 = pppppppiVar16[iVar20];
        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);
        (*(code *)(iVar2 + -0x7974))
                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,
                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,
                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);
      }
      pppppiVar12 = pppppiVar19;
    } while (pppppiVar19 != (int *****)0x0);
  }
  if (ppppppiVar5[0x42] != (int *****)0x0) {
    unaff_s7 = (int *******)0x1;
    pppppiVar12 = ppppppiVar5[0x42];
    do {
      pppppiVar19 = (int *****)pppppiVar12[2];
      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);
      FUN_00018878(pppppiVar12);
      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&
          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {
        FUN_00014600(*pppppiVar12);
        pcVar32 = *(code **)(pcVar31 + 0x22bb4);
        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;
        (*pcVar32)(*pppppiVar12);
      }
      pppppiVar12 = pppppiVar19;
    } while (pppppiVar19 != (int *****)0x0);
  }
  FUN_0001ab80(ppppppiVar5);
  if (iStack_41c == *piVar4) {
    return 1;
  }
  pcVar31 = *(code **)(pcVar31 + 0x22c30);
  iVar2 = iStack_41c;
  (*pcVar31)();
  uVar30 = *(uint *)(iVar2 + 0xf8);
  uVar29 = uVar30 & 4;
  pppppppiVar25 = (int *******)(uVar30 & 0x8000);
  uVar3 = uVar30;
  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {
    unaff_s7 = (int *******)0x1;
    puVar9 = *(undefined4 **)(iVar2 + 0x108);
    do {
      puVar22 = (undefined4 *)puVar9[2];
      FUN_00018878(puVar9);
      FUN_00014600(*puVar9);
      *(undefined1 *)((int)puVar9 + 0x51) = 1;
      (**(code **)(pcVar31 + 0x22818))(*puVar9);
      puVar9 = puVar22;
    } while (puVar22 != (undefined4 *)0x0);
    pppppppiVar14 = (int *******)0x0;
    uVar3 = *(uint *)(iVar2 + 0xf8);
  }
  if ((uVar3 & 0x2000) != 0) {
    *(undefined1 *)(iVar2 + 0xe3) = 1;
    FUN_00018028(iVar2);
  }
  iVar23 = iVar2 + 0xac;
  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);
  uVar15 = 0x191e;
  if (iVar20 != 0) goto LAB_0001cf0c;
  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;
  ppppppiVar5 = *(int *******)(iVar2 + 0x14);
  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;
  pppppiVar12 = ppppppiVar5[0x38];
  uVar30 = uVar30 & 2;
  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;
  pppppppiVar14 = (int *******)0x1;
  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);
LAB_0001cb18:
  if (uVar30 == 0) goto LAB_0001cd7c;
  if (uVar29 == 0) {
    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;
    goto LAB_0001cd9c;
  }
  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {
    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);
    goto LAB_0001cb54;
  }
  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;
LAB_0001cb4c:
  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;
  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;
LAB_0001cb54:
  ppppppiVar5 = (int ******)ppppppiVar5[3];
  if (ppppppiVar5 != (int ******)0x0) {
    pppppiVar12 = ppppppiVar5[0x38];
    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;
LAB_0001cb6c:
    uVar15 = 0x1929;
    do {
      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,
                 *(int *)(pcVar31 + 0x22638) + -0x33d0);
LAB_0001cb94:
      uVar15 = 0x1948;
    } while (*(int *)(iVar2 + 0x10) != 0);
  }
LAB_0001cba0:
  ppppppiVar5 = *(int *******)(iVar2 + 0xc);
  pcVar32 = *(code **)(pcVar31 + 0x22918);
  if (ppppppiVar5 != (int ******)0x0) {
    do {
      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);
      ppppppiVar5 = (int ******)ppppppiVar5[3];
    } while (ppppppiVar5 != (int ******)0x0);
    pcVar32 = *(code **)(pcVar31 + 0x22918);
    ppppppiVar5 = (int ******)0x0;
    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)
       ) {
      pppppppiVar14 = (int *******)0x1;
      do {
        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')
        {
          iVar20 = (*pcVar32)(iVar23);
          if (iVar20 != 0) {
            uVar15 = 0x195e;
            goto LAB_0001cd58;
          }
          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);
          if (iVar20 != 0) goto LAB_0001cf30;
          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);
          if (iVar20 != 0) {
            uVar15 = 0x1961;
            goto LAB_0001cf0c;
          }
          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;
          ppppppiVar5 = *(int *******)(iVar2 + 0xc);
          pcVar32 = *(code **)(pcVar31 + 0x22918);
          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;
        }
        ppppppiVar5 = (int ******)ppppppiVar5[3];
      } while (ppppppiVar5 != (int ******)0x0);
    }
  }
LAB_0001cc48:
  iVar20 = (*pcVar32)(iVar23);
  if (iVar20 == 0) {
    if (pppppppiVar25 != (int *******)0x0) {
      *(undefined1 *)(iVar2 + 0xe3) = 1;
      FUN_00018028(iVar2);
    }
    do {
      ppppppiVar5 = *(int *******)(iVar2 + 0xc);
      while( true ) {
        if (ppppppiVar5 == (int ******)0x0) {
          iVar2 = FUN_0001ab80(iVar2);
          return iVar2;
        }
        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))
        goto LAB_0001cf30;
        pppppppiVar14 = (int *******)ppppppiVar5[6];
        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;
        FUN_000140b4(ppppppiVar5);
        ppppppiVar5 = *(int *******)(iVar2 + 0xc);
      }
      pppppppiVar25 = pppppppiVar14 + 0x2b;
      FUN_00014148(ppppppiVar5,3);
      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);
      if (iVar20 != 0) {
        do {
          uVar15 = 0x11ca;
LAB_0001cf0c:
          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,
                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);
LAB_0001cf30:
          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);
        } while( true );
      }
      pppppiVar12 = ppppppiVar5[5];
      ppppppiVar10 = (int ******)ppppppiVar5[4];
      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar14[0xc] = ppppppiVar10;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar10;
        }
        pppppiVar12 = ppppppiVar5[4];
        ppppppiVar10 = (int ******)ppppppiVar5[5];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;
        pppppppiVar14[0xd] = ppppppiVar10;
LAB_0001ccf4:
        pppppiVar12 = ppppppiVar5[3];
        ppppppiVar10 = (int ******)ppppppiVar5[2];
        ppppppiVar5[4] = (int *****)0x0;
        ppppppiVar5[5] = (int *****)0x0;
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;
LAB_0001cdfc:
        pppppppiVar14[2] = ppppppiVar10;
        pppppiVar12 = ppppppiVar5[2];
        ppppppiVar10 = (int ******)ppppppiVar5[3];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;
LAB_0001cd18:
        pppppiVar12[3] = (int ****)ppppppiVar10;
        ppppppiVar5[2] = (int *****)0x0;
        ppppppiVar5[3] = (int *****)0x0;
        ppppppiVar10 = pppppppiVar14[6];
        ppppppiVar5[2] = (int *****)ppppppiVar10;
        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;
LAB_0001ce2c:
        pppppppiVar14[7] = ppppppiVar5;
      }
      else {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar14[0xe] = ppppppiVar10;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar10;
        }
        pppppiVar12 = ppppppiVar5[4];
        ppppppiVar10 = (int ******)ppppppiVar5[5];
        if (pppppiVar12 != (int *****)0x0) {
LAB_0001ccf0:
          pppppiVar12[5] = (int ****)ppppppiVar10;
          goto LAB_0001ccf4;
        }
        pppppppiVar14[0xf] = ppppppiVar10;
        ppppppiVar5[4] = (int *****)0x0;
        ppppppiVar5[5] = (int *****)0x0;
        pppppiVar12 = ppppppiVar5[3];
        ppppppiVar10 = (int ******)ppppppiVar5[2];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;
LAB_0001cd08:
        pppppiVar12[2] = (int ****)ppppppiVar10;
        pppppiVar12 = ppppppiVar5[2];
        ppppppiVar10 = (int ******)ppppppiVar5[3];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;
LAB_0001ce0c:
        pppppppiVar14[3] = ppppppiVar10;
        ppppppiVar5[2] = (int *****)0x0;
        ppppppiVar5[3] = (int *****)0x0;
        ppppppiVar10 = pppppppiVar14[6];
        ppppppiVar5[2] = (int *****)ppppppiVar10;
        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;
LAB_0001cd38:
        ppppppiVar10[3] = (int *****)ppppppiVar5;
      }
      pcVar32 = *(code **)(pcVar31 + 0x22918);
      pppppppiVar14[6] = ppppppiVar5;
      iVar20 = (*pcVar32)(pppppppiVar25);
    } while (iVar20 == 0);
    uVar15 = 0x11dd;
  }
  else {
    uVar15 = 0x196b;
  }
LAB_0001cd58:
  pppppiVar12 = (int *****)
                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                          (**(undefined4 **)(pcVar31 + 0x22644),
                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,
                           *(int *)(pcVar31 + 0x22638) + -0x51b8);
LAB_0001cd7c:
  if (*(char *)(pppppiVar12 + 0x14) == '\0') {
LAB_0001cdb0:
    FUN_00020df0(iVar2,unaff_s7);
  }
  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;
  if (uVar29 == 0) {
LAB_0001cd9c:
    FUN_00014600(ppppppiVar5);
  }
  goto LAB_0001cb4c;
}


lui gp,0x3
addiu gp,gp,-0x46b4
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x7d88(gp)
sw gp,0x10(sp)
sw s2,0x20(sp)
sw s0,0x18(sp)
or s0,a0,zero
sw ra,0x24(sp)
sw s1,0x1c(sp)
lw s1,0x18(a0)
addiu s2,s1,0xac
jalr t9
_or a0,s2,zero
bne v0,zero,0x0001b960
_lw gp,0x10(sp)
lbu v0,0xfc(s0)
bne v0,zero,0x0001b894
_lw t9,-0x7cf4(gp)
lw v0,0xf8(s1)
andi v0,v0,0x4
bne v0,zero,0x0001b77c
_nop
lw a0,0x98(s0)
lw v1,0xf0(s1)
lw v0,0x14(s0)
beq a0,v1,0x0001b928
_lw a1,0x10(s0)
beq v0,zero,0x0001b920
_nop
sw a1,0x10(v0)
lw v0,0x10(s0)
beq v0,zero,0x0001b910
_lw v1,0x14(s0)
sw v1,0x14(v0)
sw zero,0x10(s0)
sw zero,0x14(s0)
lw v0,0xc(s0)
beq v0,zero,0x0001b85c
_lw v1,0x8(s0)
sw v1,0x8(v0)
lw v0,0x8(s0)
beq v0,zero,0x0001b86c
_lw v1,0xc(s0)
sw v1,0xc(v0)
sw zero,0x8(s0)
sw zero,0xc(s0)
lw v0,0x10(s1)
sw v0,0x8(s0)
lw v1,0x14(s1)
beq v1,zero,0x0001b88c
_nop
sw s0,0xc(v0)
li v0,0x1
sw s0,0x10(s1)
sb v0,0xf5(s0)
lw v0,0xf8(s1)
andi v0,v0,0x200
beq v0,zero,0x0001b834
_lw t9,-0x7cf4(gp)
lw v0,0xb0(s0)
andi v1,v0,0x4
beq v1,zero,0x0001b820
_nop
lw v0,0x4(s0)
beq v0,zero,0x0001b908
_lw v1,0x0(s0)
sw v1,0x0(v0)
lw v0,0x0(s0)
beq v0,zero,0x0001b950
_lw v1,0x4(s0)
sw v1,0x4(v0)
lw v0,0xb0(s0)
li v1,-0x5
sw zero,0x0(s0)
sw zero,0x4(s0)
and v0,v0,v1
sw v0,0xb0(s0)
andi v1,v0,0x8
bne v1,zero,0x0001b8d0
_ori v0,v0,0x10
sw v0,0xb0(s0)
lw t9,-0x7cf4(gp)
jalr t9
_or a0,s2,zero
bne v0,zero,0x0001b988
_lw gp,0x10(sp)
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
sw v1,0x8(s1)
lw v0,0x8(s0)
bne v0,zero,0x0001b798
_lw v1,0xc(s0)
sw v1,0xc(s1)
sw zero,0x8(s0)
sw zero,0xc(s0)
lw v0,0x10(s1)
sw v0,0x8(s0)
lw v1,0x14(s1)
bne v1,zero,0x0001b7b8
_nop
b 0x0001b7bc
_sw s0,0x14(s1)
or a0,s2,zero
jalr t9
_sb zero,0xfc(s0)
li a2,0xa8a
beq v0,zero,0x0001b844
_lw gp,0x10(sp)
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x51b8
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
lw t9,-0x7db8(gp)
or a3,zero,zero
lw a2,0xa4(s0)
li a1,0x2
jalr t9
_lw a0,0xcc(s1)
bne v0,zero,0x0001b990
_lw gp,0x10(sp)
lw v0,0xb0(s0)
li v1,-0x9
and v0,v0,v1
ori v0,v0,0x10
b 0x0001b830
_sw v0,0xb0(s0)
b 0x0001b7f8
_sw v1,0x20(s1)
sw v1,0x3c(s1)
sw zero,0x10(s0)
b 0x0001b77c
_sw zero,0x14(s0)
b 0x0001b764
_sw a1,0x38(s1)
beq v0,zero,0x0001b958
_nop
sw a1,0x10(v0)
lw v0,0x10(s0)
bne v0,zero,0x0001b770
_lw v1,0x14(s0)
sw v1,0x34(s1)
sw zero,0x10(s0)
b 0x0001b77c
_sw zero,0x14(s0)
b 0x0001b808
_sw v1,0x24(s1)
b 0x0001b934
_sw a1,0x30(s1)
lw v0,-0x7fc8(gp)
li a2,0xa83
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x51e0
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
b 0x0001b8ac
_li a2,0xab8
lw v0,-0x7fc8(gp)
li a2,0xab1
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x4f40
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint FUN_0001b6e4(int *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\n}\n\n" comment (function_definition "int FUN_0001b6e4(int *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\n}" primitive_type (function_declarator "FUN_0001b6e4(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\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 ******ppppppiVar5;" primitive_type (pointer_declarator "******ppppppiVar5" * (pointer_declarator "*****ppppppiVar5" * (pointer_declarator "****ppppppiVar5" * (pointer_declarator "***ppppppiVar5" * (pointer_declarator "**ppppppiVar5" * (pointer_declarator "*ppppppiVar5" * identifier)))))) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *******pppppppiVar7;" primitive_type (pointer_declarator "*******pppppppiVar7" * (pointer_declarator "******pppppppiVar7" * (pointer_declarator "*****pppppppiVar7" * (pointer_declarator "****pppppppiVar7" * (pointer_declarator "***pppppppiVar7" * (pointer_declarator "**pppppppiVar7" * (pointer_declarator "*pppppppiVar7" * identifier))))))) ;) (declaration "int *******pppppppiVar8;" primitive_type (pointer_declarator "*******pppppppiVar8" * (pointer_declarator "******pppppppiVar8" * (pointer_declarator "*****pppppppiVar8" * (pointer_declarator "****pppppppiVar8" * (pointer_declarator "***pppppppiVar8" * (pointer_declarator "**pppppppiVar8" * (pointer_declarator "*pppppppiVar8" * identifier))))))) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int ******ppppppiVar10;" primitive_type (pointer_declarator "******ppppppiVar10" * (pointer_declarator "*****ppppppiVar10" * (pointer_declarator "****ppppppiVar10" * (pointer_declarator "***ppppppiVar10" * (pointer_declarator "**ppppppiVar10" * (pointer_declarator "*ppppppiVar10" * identifier)))))) ;) (declaration "int *******pppppppiVar11;" primitive_type (pointer_declarator "*******pppppppiVar11" * (pointer_declarator "******pppppppiVar11" * (pointer_declarator "*****pppppppiVar11" * (pointer_declarator "****pppppppiVar11" * (pointer_declarator "***pppppppiVar11" * (pointer_declarator "**pppppppiVar11" * (pointer_declarator "*pppppppiVar11" * identifier))))))) ;) (declaration "int *****pppppiVar12;" primitive_type (pointer_declarator "*****pppppiVar12" * (pointer_declarator "****pppppiVar12" * (pointer_declarator "***pppppiVar12" * (pointer_declarator "**pppppiVar12" * (pointer_declarator "*pppppiVar12" * identifier))))) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *******pppppppiVar14;" primitive_type (pointer_declarator "*******pppppppiVar14" * (pointer_declarator "******pppppppiVar14" * (pointer_declarator "*****pppppppiVar14" * (pointer_declarator "****pppppppiVar14" * (pointer_declarator "***pppppppiVar14" * (pointer_declarator "**pppppppiVar14" * (pointer_declarator "*pppppppiVar14" * identifier))))))) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int *******pppppppiVar16;" primitive_type (pointer_declarator "*******pppppppiVar16" * (pointer_declarator "******pppppppiVar16" * (pointer_declarator "*****pppppppiVar16" * (pointer_declarator "****pppppppiVar16" * (pointer_declarator "***pppppppiVar16" * (pointer_declarator "**pppppppiVar16" * (pointer_declarator "*pppppppiVar16" * identifier))))))) ;) (declaration "int *******pppppppiVar17;" primitive_type (pointer_declarator "*******pppppppiVar17" * (pointer_declarator "******pppppppiVar17" * (pointer_declarator "*****pppppppiVar17" * (pointer_declarator "****pppppppiVar17" * (pointer_declarator "***pppppppiVar17" * (pointer_declarator "**pppppppiVar17" * (pointer_declarator "*pppppppiVar17" * identifier))))))) ;) (declaration "int *******pppppppiVar18;" primitive_type (pointer_declarator "*******pppppppiVar18" * (pointer_declarator "******pppppppiVar18" * (pointer_declarator "*****pppppppiVar18" * (pointer_declarator "****pppppppiVar18" * (pointer_declarator "***pppppppiVar18" * (pointer_declarator "**pppppppiVar18" * (pointer_declarator "*pppppppiVar18" * identifier))))))) ;) (declaration "int *****pppppiVar19;" primitive_type (pointer_declarator "*****pppppiVar19" * (pointer_declarator "****pppppiVar19" * (pointer_declarator "***pppppiVar19" * (pointer_declarator "**pppppiVar19" * (pointer_declarator "*pppppiVar19" * identifier))))) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int ******ppppppiVar21;" primitive_type (pointer_declarator "******ppppppiVar21" * (pointer_declarator "*****ppppppiVar21" * (pointer_declarator "****ppppppiVar21" * (pointer_declarator "***ppppppiVar21" * (pointer_declarator "**ppppppiVar21" * (pointer_declarator "*ppppppiVar21" * identifier)))))) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *******pppppppiVar24;" primitive_type (pointer_declarator "*******pppppppiVar24" * (pointer_declarator "******pppppppiVar24" * (pointer_declarator "*****pppppppiVar24" * (pointer_declarator "****pppppppiVar24" * (pointer_declarator "***pppppppiVar24" * (pointer_declarator "**pppppppiVar24" * (pointer_declarator "*pppppppiVar24" * identifier))))))) ;) (declaration "int *******pppppppiVar25;" primitive_type (pointer_declarator "*******pppppppiVar25" * (pointer_declarator "******pppppppiVar25" * (pointer_declarator "*****pppppppiVar25" * (pointer_declarator "****pppppppiVar25" * (pointer_declarator "***pppppppiVar25" * (pointer_declarator "**pppppppiVar25" * (pointer_declarator "*pppppppiVar25" * identifier))))))) ;) (declaration "int *******pppppppiVar26;" primitive_type (pointer_declarator "*******pppppppiVar26" * (pointer_declarator "******pppppppiVar26" * (pointer_declarator "*****pppppppiVar26" * (pointer_declarator "****pppppppiVar26" * (pointer_declarator "***pppppppiVar26" * (pointer_declarator "**pppppppiVar26" * (pointer_declarator "*pppppppiVar26" * identifier))))))) ;) (declaration "int ******ppppppiVar27;" primitive_type (pointer_declarator "******ppppppiVar27" * (pointer_declarator "*****ppppppiVar27" * (pointer_declarator "****ppppppiVar27" * (pointer_declarator "***ppppppiVar27" * (pointer_declarator "**ppppppiVar27" * (pointer_declarator "*ppppppiVar27" * identifier)))))) ;) (declaration "int ****ppppiVar28;" primitive_type (pointer_declarator "****ppppiVar28" * (pointer_declarator "***ppppiVar28" * (pointer_declarator "**ppppiVar28" * (pointer_declarator "*ppppiVar28" * identifier)))) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int *******unaff_s6;" primitive_type (pointer_declarator "*******unaff_s6" * (pointer_declarator "******unaff_s6" * (pointer_declarator "*****unaff_s6" * (pointer_declarator "****unaff_s6" * (pointer_declarator "***unaff_s6" * (pointer_declarator "**unaff_s6" * (pointer_declarator "*unaff_s6" * identifier))))))) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "int *******unaff_s7;" primitive_type (pointer_declarator "*******unaff_s7" * (pointer_declarator "******unaff_s7" * (pointer_declarator "*****unaff_s7" * (pointer_declarator "****unaff_s7" * (pointer_declarator "***unaff_s7" * (pointer_declarator "**unaff_s7" * (pointer_declarator "*unaff_s7" * identifier))))))) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined1 auStack_428 [12];" type_identifier (array_declarator "auStack_428 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_41c;" primitive_type identifier ;) (declaration "int *******pppppppiStack_418;" primitive_type (pointer_declarator "*******pppppppiStack_418" * (pointer_declarator "******pppppppiStack_418" * (pointer_declarator "*****pppppppiStack_418" * (pointer_declarator "****pppppppiStack_418" * (pointer_declarator "***pppppppiStack_418" * (pointer_declarator "**pppppppiStack_418" * (pointer_declarator "*pppppppiStack_418" * identifier))))))) ;) (declaration "int ******ppppppiStack_414;" primitive_type (pointer_declarator "******ppppppiStack_414" * (pointer_declarator "*****ppppppiStack_414" * (pointer_declarator "****ppppppiStack_414" * (pointer_declarator "***ppppppiStack_414" * (pointer_declarator "**ppppppiStack_414" * (pointer_declarator "*ppppppiStack_414" * identifier)))))) ;) (declaration "int *******pppppppiStack_410;" primitive_type (pointer_declarator "*******pppppppiStack_410" * (pointer_declarator "******pppppppiStack_410" * (pointer_declarator "*****pppppppiStack_410" * (pointer_declarator "****pppppppiStack_410" * (pointer_declarator "***pppppppiStack_410" * (pointer_declarator "**pppppppiStack_410" * (pointer_declarator "*pppppppiStack_410" * identifier))))))) ;) (declaration "undefined4 uStack_40c;" type_identifier identifier ;) (declaration "int *******pppppppiStack_408;" primitive_type (pointer_declarator "*******pppppppiStack_408" * (pointer_declarator "******pppppppiStack_408" * (pointer_declarator "*****pppppppiStack_408" * (pointer_declarator "****pppppppiStack_408" * (pointer_declarator "***pppppppiStack_408" * (pointer_declarator "**pppppppiStack_408" * (pointer_declarator "*pppppppiStack_408" * identifier))))))) ;) (declaration "int ******ppppppiStack_404;" primitive_type (pointer_declarator "******ppppppiStack_404" * (pointer_declarator "*****ppppppiStack_404" * (pointer_declarator "****ppppppiStack_404" * (pointer_declarator "***ppppppiStack_404" * (pointer_declarator "**ppppppiStack_404" * (pointer_declarator "*ppppppiStack_404" * identifier)))))) ;) (declaration "int *******pppppppiStack_400;" primitive_type (pointer_declarator "*******pppppppiStack_400" * (pointer_declarator "******pppppppiStack_400" * (pointer_declarator "*****pppppppiStack_400" * (pointer_declarator "****pppppppiStack_400" * (pointer_declarator "***pppppppiStack_400" * (pointer_declarator "**pppppppiStack_400" * (pointer_declarator "*pppppppiStack_400" * identifier))))))) ;) (declaration "int *******pppppppiStack_3fc;" primitive_type (pointer_declarator "*******pppppppiStack_3fc" * (pointer_declarator "******pppppppiStack_3fc" * (pointer_declarator "*****pppppppiStack_3fc" * (pointer_declarator "****pppppppiStack_3fc" * (pointer_declarator "***pppppppiStack_3fc" * (pointer_declarator "**pppppppiStack_3fc" * (pointer_declarator "*pppppppiStack_3fc" * identifier))))))) ;) (declaration "int *******pppppppiStack_3f8;" primitive_type (pointer_declarator "*******pppppppiStack_3f8" * (pointer_declarator "******pppppppiStack_3f8" * (pointer_declarator "*****pppppppiStack_3f8" * (pointer_declarator "****pppppppiStack_3f8" * (pointer_declarator "***pppppppiStack_3f8" * (pointer_declarator "**pppppppiStack_3f8" * (pointer_declarator "*pppppppiStack_3f8" * identifier))))))) ;) (declaration "code *pcStack_3f4;" type_identifier (pointer_declarator "*pcStack_3f4" * identifier) ;) (declaration "int *******pppppppiStack_3e0;" primitive_type (pointer_declarator "*******pppppppiStack_3e0" * (pointer_declarator "******pppppppiStack_3e0" * (pointer_declarator "*****pppppppiStack_3e0" * (pointer_declarator "****pppppppiStack_3e0" * (pointer_declarator "***pppppppiStack_3e0" * (pointer_declarator "**pppppppiStack_3e0" * (pointer_declarator "*pppppppiStack_3e0" * identifier))))))) ;) (declaration "undefined4 uStack_3dc;" type_identifier identifier ;) (declaration "code *pcStack_3d8;" type_identifier (pointer_declarator "*pcStack_3d8" * identifier) ;) (declaration "int *piStack_3cc;" primitive_type (pointer_declarator "*piStack_3cc" * identifier) ;) (declaration "int *******pppppppiStack_3c8;" primitive_type (pointer_declarator "*******pppppppiStack_3c8" * (pointer_declarator "******pppppppiStack_3c8" * (pointer_declarator "*****pppppppiStack_3c8" * (pointer_declarator "****pppppppiStack_3c8" * (pointer_declarator "***pppppppiStack_3c8" * (pointer_declarator "**pppppppiStack_3c8" * (pointer_declarator "*pppppppiStack_3c8" * identifier))))))) ;) (declaration "int *******pppppppiStack_3c4;" primitive_type (pointer_declarator "*******pppppppiStack_3c4" * (pointer_declarator "******pppppppiStack_3c4" * (pointer_declarator "*****pppppppiStack_3c4" * (pointer_declarator "****pppppppiStack_3c4" * (pointer_declarator "***pppppppiStack_3c4" * (pointer_declarator "**pppppppiStack_3c4" * (pointer_declarator "*pppppppiStack_3c4" * identifier))))))) ;) (declaration "int iStack_3c0;" primitive_type identifier ;) (declaration "int ******ppppppiStack_3bc;" primitive_type (pointer_declarator "******ppppppiStack_3bc" * (pointer_declarator "*****ppppppiStack_3bc" * (pointer_declarator "****ppppppiStack_3bc" * (pointer_declarator "***ppppppiStack_3bc" * (pointer_declarator "**ppppppiStack_3bc" * (pointer_declarator "*ppppppiStack_3bc" * identifier)))))) ;) (declaration "int *******pppppppiStack_3b8;" primitive_type (pointer_declarator "*******pppppppiStack_3b8" * (pointer_declarator "******pppppppiStack_3b8" * (pointer_declarator "*****pppppppiStack_3b8" * (pointer_declarator "****pppppppiStack_3b8" * (pointer_declarator "***pppppppiStack_3b8" * (pointer_declarator "**pppppppiStack_3b8" * (pointer_declarator "*pppppppiStack_3b8" * identifier))))))) ;) (declaration "undefined4 uStack_3b4;" type_identifier identifier ;) (declaration "int ******ppppppiStack_3b0;" primitive_type (pointer_declarator "******ppppppiStack_3b0" * (pointer_declarator "*****ppppppiStack_3b0" * (pointer_declarator "****ppppppiStack_3b0" * (pointer_declarator "***ppppppiStack_3b0" * (pointer_declarator "**ppppppiStack_3b0" * (pointer_declarator "*ppppppiStack_3b0" * identifier)))))) ;) (declaration "undefined4 uStack_3ac;" type_identifier identifier ;) (declaration "int ******ppppppiStack_3a4;" primitive_type (pointer_declarator "******ppppppiStack_3a4" * (pointer_declarator "*****ppppppiStack_3a4" * (pointer_declarator "****ppppppiStack_3a4" * (pointer_declarator "***ppppppiStack_3a4" * (pointer_declarator "**ppppppiStack_3a4" * (pointer_declarator "*ppppppiStack_3a4" * identifier)))))) ;) (declaration "undefined4 uStack_3a0;" type_identifier identifier ;) (declaration "int ******appppppiStack_39c [32];" primitive_type (pointer_declarator "******appppppiStack_39c [32]" * (pointer_declarator "*****appppppiStack_39c [32]" * (pointer_declarator "****appppppiStack_39c [32]" * (pointer_declarator "***appppppiStack_39c [32]" * (pointer_declarator "**appppppiStack_39c [32]" * (pointer_declarator "*appppppiStack_39c [32]" * (array_declarator "appppppiStack_39c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_31c [32];" primitive_type (pointer_declarator "******appppppiStack_31c [32]" * (pointer_declarator "*****appppppiStack_31c [32]" * (pointer_declarator "****appppppiStack_31c [32]" * (pointer_declarator "***appppppiStack_31c [32]" * (pointer_declarator "**appppppiStack_31c [32]" * (pointer_declarator "*appppppiStack_31c [32]" * (array_declarator "appppppiStack_31c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_29c [32];" primitive_type (pointer_declarator "******appppppiStack_29c [32]" * (pointer_declarator "*****appppppiStack_29c [32]" * (pointer_declarator "****appppppiStack_29c [32]" * (pointer_declarator "***appppppiStack_29c [32]" * (pointer_declarator "**appppppiStack_29c [32]" * (pointer_declarator "*appppppiStack_29c [32]" * (array_declarator "appppppiStack_29c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_21c [32];" primitive_type (pointer_declarator "******appppppiStack_21c [32]" * (pointer_declarator "*****appppppiStack_21c [32]" * (pointer_declarator "****appppppiStack_21c [32]" * (pointer_declarator "***appppppiStack_21c [32]" * (pointer_declarator "**appppppiStack_21c [32]" * (pointer_declarator "*appppppiStack_21c [32]" * (array_declarator "appppppiStack_21c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_19c [32];" primitive_type (pointer_declarator "******appppppiStack_19c [32]" * (pointer_declarator "*****appppppiStack_19c [32]" * (pointer_declarator "****appppppiStack_19c [32]" * (pointer_declarator "***appppppiStack_19c [32]" * (pointer_declarator "**appppppiStack_19c [32]" * (pointer_declarator "*appppppiStack_19c [32]" * (array_declarator "appppppiStack_19c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_11c [32];" primitive_type (pointer_declarator "******appppppiStack_11c [32]" * (pointer_declarator "*****appppppiStack_11c [32]" * (pointer_declarator "****appppppiStack_11c [32]" * (pointer_declarator "***appppppiStack_11c [32]" * (pointer_declarator "**appppppiStack_11c [32]" * (pointer_declarator "*appppppiStack_11c [32]" * (array_declarator "appppppiStack_11c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******ppppppiStack_9c;" primitive_type (pointer_declarator "******ppppppiStack_9c" * (pointer_declarator "*****ppppppiStack_9c" * (pointer_declarator "****ppppppiStack_9c" * (pointer_declarator "***ppppppiStack_9c" * (pointer_declarator "**ppppppiStack_9c" * (pointer_declarator "*ppppppiStack_9c" * identifier)))))) ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (expression_statement "iVar20 = param_1[6];" (assignment_expression "iVar20 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar23 = iVar20 + 0xac;" (assignment_expression "iVar23 = iVar20 + 0xac" identifier = (binary_expression "iVar20 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" { (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001b988;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x3f) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x3f) != '\0'" (pointer_expression "*(char *)(param_1 + 0x3f)" * (cast_expression "(char *)(param_1 + 0x3f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f)" ( (binary_expression "param_1 + 0x3f" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0x3f) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x3f) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x3f)" * (cast_expression "(undefined1 *)(param_1 + 0x3f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f)" ( (binary_expression "param_1 + 0x3f" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar1)(iVar23);" (assignment_expression "iVar2 = (*(code *)puVar1)(iVar23)" identifier = (call_expression "(*(code *)puVar1)(iVar23)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "uVar15 = 0xa8a;" (assignment_expression "uVar15 = 0xa8a" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_0001b8ac;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b8ac;" goto statement_identifier ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar20 + 0xf8) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar20 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar20 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar20 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar20 + 0xf8)" * (cast_expression "(uint *)(iVar20 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xf8)" ( (binary_expression "iVar20 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }" { (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[4];" (assignment_expression "iVar13 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (if_statement "if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" if (parenthesized_expression "(param_1[0x26] == *(int *)(iVar20 + 0xf0))" ( (binary_expression "param_1[0x26] == *(int *)(iVar20 + 0xf0)" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar20 + 0xf0)" * (cast_expression "(int *)(iVar20 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xf0)" ( (binary_expression "iVar20 + 0xf0" identifier + number_literal) ))))) )) (compound_statement "{\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" { (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }" { (expression_statement "*(int *)(iVar20 + 0x30) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x30) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" else (compound_statement "{\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" { (expression_statement "*(int *)(iVar2 + 0x10) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar13" (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) )))) = identifier) ;) }))) (expression_statement "iVar2 = param_1[4];" (assignment_expression "iVar2 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[5];" (assignment_expression "iVar13 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) goto LAB_0001b770;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b770;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar20 + 0x34) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x34) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x34)" * (cast_expression "(int *)(iVar20 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x34)" ( (binary_expression "iVar20 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" else (compound_statement "{\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" { (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }" { (expression_statement "*(int *)(iVar20 + 0x38) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x38) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x38)" * (cast_expression "(int *)(iVar20 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" else (compound_statement "{\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" { (expression_statement "*(int *)(iVar2 + 0x10) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar13" (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) )))) = identifier) ;) }))) (expression_statement "iVar2 = param_1[4];" (assignment_expression "iVar2 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[5];" (assignment_expression "iVar13 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" { (expression_statement "*(int *)(iVar20 + 0x3c) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x3c) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x3c)" * (cast_expression "(int *)(iVar20 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" else (compound_statement "{\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" { (labeled_statement "LAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar2 + 0x14) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x14) = iVar13" (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) )))) = identifier) ;)) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) }))) }))) })) (if_statement "if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" if (parenthesized_expression "(param_1[3] == 0)" ( (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }" { (expression_statement "*(int *)(iVar20 + 8) = param_1[2];" (assignment_expression "*(int *)(iVar20 + 8) = param_1[2]" (pointer_expression "*(int *)(iVar20 + 8)" * (cast_expression "(int *)(iVar20 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) goto LAB_0001b86c;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001b86c;" goto statement_identifier ;)) (labeled_statement "LAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar2 + 0xc) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar13" (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) ;)) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar20 + 0x10)" identifier = (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "param_1[2] = iVar2;" (assignment_expression "param_1[2] = iVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;" if (parenthesized_expression "(*(int *)(iVar20 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar20 + 0x14) != 0" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001b7b8;" goto statement_identifier ;)) (labeled_statement "LAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;" statement_identifier : (expression_statement "*(int **)(iVar20 + 0x14) = param_1;" (assignment_expression "*(int **)(iVar20 + 0x14) = param_1" (pointer_expression "*(int **)(iVar20 + 0x14)" * (cast_expression "(int **)(iVar20 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" else (compound_statement "{\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" { (expression_statement "*(int *)(param_1[3] + 8) = param_1[2];" (assignment_expression "*(int *)(param_1[3] + 8) = param_1[2]" (pointer_expression "*(int *)(param_1[3] + 8)" * (cast_expression "(int *)(param_1[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + 8)" ( (binary_expression "param_1[3] + 8" (subscript_expression "param_1[3]" identifier [ number_literal ]) + number_literal) )))) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) goto LAB_0001b798;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b798;" goto statement_identifier ;)) (labeled_statement "LAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar20 + 0xc) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0xc) = iVar13" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar20 + 0x10)" identifier = (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "param_1[2] = iVar2;" (assignment_expression "param_1[2] = iVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;" if (parenthesized_expression "(*(int *)(iVar20 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar20 + 0x14) == 0" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001b88c;" goto statement_identifier ;)) (labeled_statement "LAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;" statement_identifier : (expression_statement "*(int **)(iVar2 + 0xc) = param_1;" (assignment_expression "*(int **)(iVar2 + 0xc) = param_1" (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;)) }))) (expression_statement "*(int **)(iVar20 + 0x10) = param_1;" (assignment_expression "*(int **)(iVar20 + 0x10) = param_1" (pointer_expression "*(int **)(iVar20 + 0x10)" * (cast_expression "(int **)(iVar20 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0xf5) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0xf5) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0xf5)" * (cast_expression "(undefined1 *)((int)param_1 + 0xf5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xf5)" ( (binary_expression "(int)param_1 + 0xf5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }" if (parenthesized_expression "((*(uint *)(iVar20 + 0xf8) & 0x200) != 0)" ( (binary_expression "(*(uint *)(iVar20 + 0xf8) & 0x200) != 0" (parenthesized_expression "(*(uint *)(iVar20 + 0xf8) & 0x200)" ( (binary_expression "*(uint *)(iVar20 + 0xf8) & 0x200" (pointer_expression "*(uint *)(iVar20 + 0xf8)" * (cast_expression "(uint *)(iVar20 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xf8)" ( (binary_expression "iVar20 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }" { (expression_statement "uVar3 = param_1[0x2c];" (assignment_expression "uVar3 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) (if_statement "if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[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 *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }" { (if_statement "if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }" if (parenthesized_expression "((int *)param_1[1] == (int *)0x0)" ( (binary_expression "(int *)param_1[1] == (int *)0x0" (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }" { (expression_statement "*(int *)(iVar20 + 0x20) = *param_1;" (assignment_expression "*(int *)(iVar20 + 0x20) = *param_1" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*param_1" * identifier)) ;) }) (else_clause "else {\n        *(int *)param_1[1] = *param_1;\n      }" else (compound_statement "{\n        *(int *)param_1[1] = *param_1;\n      }" { (expression_statement "*(int *)param_1[1] = *param_1;" (assignment_expression "*(int *)param_1[1] = *param_1" (pointer_expression "*(int *)param_1[1]" * (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) = (pointer_expression "*param_1" * identifier)) ;) }))) (if_statement "if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }" { (expression_statement "*(int *)(iVar20 + 0x24) = param_1[1];" (assignment_expression "*(int *)(iVar20 + 0x24) = param_1[1]" (pointer_expression "*(int *)(iVar20 + 0x24)" * (cast_expression "(int *)(iVar20 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) )))) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" else (compound_statement "{\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" { (expression_statement "*(int *)(*param_1 + 4) = param_1[1];" (assignment_expression "*(int *)(*param_1 + 4) = param_1[1]" (pointer_expression "*(int *)(*param_1 + 4)" * (cast_expression "(int *)(*param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }))) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = param_1[0x2c] & 0xfffffffb;" (assignment_expression "uVar3 = param_1[0x2c] & 0xfffffffb" identifier = (binary_expression "param_1[0x2c] & 0xfffffffb" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "param_1[0x2c] = uVar3;" (assignment_expression "param_1[0x2c] = uVar3" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((uVar3 & 8) != 0) goto LAB_0001b8d0;" if (parenthesized_expression "((uVar3 & 8) != 0)" ( (binary_expression "(uVar3 & 8) != 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001b8d0;" goto statement_identifier ;)) (expression_statement "param_1[0x2c] = uVar3 | 0x10;" (assignment_expression "param_1[0x2c] = uVar3 | 0x10" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (binary_expression "uVar3 | 0x10" identifier | number_literal)) ;) })) (while_statement "while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }" { (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0001b988:\n    uVar15 = 0xab8;" statement_identifier : (expression_statement "uVar15 = 0xab8;" (assignment_expression "uVar15 = 0xab8" identifier = number_literal) ;)) (labeled_statement "LAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);" (assignment_expression "iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" ( (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" * (cast_expression "(code *)PTR_epoll_ctl_0003f278" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xcc)" * (cast_expression "(undefined4 *)(iVar20 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xcc)" ( (binary_expression "iVar20 + 0xcc" identifier + number_literal) )))) , number_literal , (subscript_expression "param_1[0x29]" identifier [ number_literal ]) , number_literal )))) ;)) (if_statement "if (iVar2 != 0) break;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;" (assignment_expression "param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (binary_expression "param_1[0x2c] & 0xfffffff7U | 0x10" (binary_expression "param_1[0x2c] & 0xfffffff7U" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (expression_statement "iVar2 = *(int *)PTR_DAT_0003f068;" (assignment_expression "iVar2 = *(int *)PTR_DAT_0003f068" identifier = (pointer_expression "*(int *)PTR_DAT_0003f068" * (cast_expression "(int *)PTR_DAT_0003f068" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar31 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar31 = *(code **)PTR_DAT_0003f070" identifier = (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);" (call_expression "(*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x4f40" identifier + number_literal) ))) ;) (if_statement "if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000)" ( (binary_expression "*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8)" * (cast_expression "(uint *)(*(int *)(iVar2 + 0x18) + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x18) + 0xf8)" ( (binary_expression "*(int *)(iVar2 + 0x18) + 0xf8" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }" { (if_statement "if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0xe0) != 0)" ( (binary_expression "*(int *)(iVar2 + 0xe0) != 0" (pointer_expression "*(int *)(iVar2 + 0xe0)" * (cast_expression "(int *)(iVar2 + 0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe0)" ( (binary_expression "iVar2 + 0xe0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }" { (expression_statement "iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);" (assignment_expression "iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" identifier = (call_expression "FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" identifier (argument_list "(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" ( (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x3554" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" * (cast_expression "(int *)(pcVar31 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x236a4)" ( (binary_expression "pcVar31 + 0x236a4" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar2 = FUN_0001b6e4();" (assignment_expression "iVar2 = FUN_0001b6e4()" identifier = (call_expression "FUN_0001b6e4()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar2 = **(int **)(pcVar31 + 0x236b0);" (assignment_expression "iVar2 = **(int **)(pcVar31 + 0x236b0)" identifier = (pointer_expression "**(int **)(pcVar31 + 0x236b0)" * (pointer_expression "*(int **)(pcVar31 + 0x236b0)" * (cast_expression "(int **)(pcVar31 + 0x236b0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x236b0)" ( (binary_expression "pcVar31 + 0x236b0" identifier + number_literal) )))))) ;) (expression_statement "pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);" (assignment_expression "pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x236b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x236b8)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x236b8)" * (cast_expression "(undefined4 **)(pcVar31 + 0x236b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x236b8)" ( (binary_expression "pcVar31 + 0x236b8" identifier + number_literal) ))))))) ;) (expression_statement "(*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );" (call_expression "(*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            )" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            )" ( identifier , (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" * (cast_expression "(int *)(pcVar31 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x236a4)" ( (binary_expression "pcVar31 + 0x236a4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x359c" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" * (cast_expression "(int *)(pcVar31 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x236a4)" ( (binary_expression "pcVar31 + 0x236a4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar13 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar2 + 0x18)" identifier = (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar13 + 0xf8) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar13 + 0xf8) & 0x2000)" ( (binary_expression "*(uint *)(iVar13 + 0xf8) & 0x2000" (pointer_expression "*(uint *)(iVar13 + 0xf8)" * (cast_expression "(uint *)(iVar13 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf8)" ( (binary_expression "iVar13 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);" (call_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23638)" ( (binary_expression "pcVar32 + 0x23638" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514)" ( (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23630)" ( (binary_expression "pcVar32 + 0x23630" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x3514" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = iVar20;" (assignment_expression "iVar2 = iVar20" identifier = identifier) ;) }) (else_clause "else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" { (expression_statement "iVar23 = iVar13 + 0xac;" (assignment_expression "iVar23 = iVar13 + 0xac" identifier = (binary_expression "iVar13 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23)" identifier = (call_expression "(**(code **)(pcVar32 + 0x23870))(iVar23)" (parenthesized_expression "(**(code **)(pcVar32 + 0x23870))" ( (pointer_expression "**(code **)(pcVar32 + 0x23870)" * (pointer_expression "*(code **)(pcVar32 + 0x23870)" * (cast_expression "(code **)(pcVar32 + 0x23870)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23870)" ( (binary_expression "pcVar32 + 0x23870" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) goto LAB_0001bb7c;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bb7c;" goto statement_identifier ;)) (expression_statement "pcVar31 = *(code **)(pcVar32 + 0x23904);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x23904)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x23904)" * (cast_expression "(code **)(pcVar32 + 0x23904)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23904)" ( (binary_expression "pcVar32 + 0x23904" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar2 + 0xfc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xfc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xfc)" * (cast_expression "(undefined1 *)(iVar2 + 0xfc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xfc)" ( (binary_expression "iVar2 + 0xfc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar13 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar13 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar13 + 0xe3)" * (cast_expression "(undefined1 *)(iVar13 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xe3)" ( (binary_expression "iVar13 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar20 = (*pcVar31)(iVar23);" (assignment_expression "iVar20 = (*pcVar31)(iVar23)" identifier = (call_expression "(*pcVar31)(iVar23)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1))" ( (binary_expression "(*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)" (parenthesized_expression "(*(int *)(iVar13 + 0xdc) != -1)" ( (binary_expression "*(int *)(iVar13 + 0xdc) != -1" (pointer_expression "*(int *)(iVar13 + 0xdc)" * (cast_expression "(int *)(iVar13 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xdc)" ( (binary_expression "iVar13 + 0xdc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)" ( (comma_expression "iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1" (assignment_expression "iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" identifier = (call_expression "(**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar32 + 0x237e8))" ( (pointer_expression "**(code **)(pcVar32 + 0x237e8)" * (pointer_expression "*(code **)(pcVar32 + 0x237e8)" * (cast_expression "(code **)(pcVar32 + 0x237e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x237e8)" ( (binary_expression "pcVar32 + 0x237e8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" ( (pointer_expression "*(int *)(iVar13 + 0xdc)" * (cast_expression "(int *)(iVar13 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xdc)" ( (binary_expression "iVar13 + 0xdc" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x28d8" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar2 < 1" identifier < number_literal)) ))) )) (compound_statement "{\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }" { (expression_statement "piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))()" identifier = (cast_expression "(int *)(**(code **)(pcVar32 + 0x237cc))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x237cc))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x237cc))" ( (pointer_expression "**(code **)(pcVar32 + 0x237cc)" * (pointer_expression "*(code **)(pcVar32 + 0x237cc)" * (cast_expression "(code **)(pcVar32 + 0x237cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x237cc)" ( (binary_expression "pcVar32 + 0x237cc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar4;" (assignment_expression "iVar2 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (if_statement "if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }" if (parenthesized_expression "(iVar2 != 0xb)" ( (binary_expression "iVar2 != 0xb" identifier != number_literal) )) (compound_statement "{\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }" { (expression_statement "iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);" (assignment_expression "iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" identifier = (call_expression "FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" identifier (argument_list "(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" ( identifier , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x34cc" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) })) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23638)" ( (binary_expression "pcVar32 + 0x23638" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23630)" ( (binary_expression "pcVar32 + 0x23630" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x51b8" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);" statement_identifier : (expression_statement "pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);" (assignment_expression "pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630)" identifier = (cast_expression "(int *******)**(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23630)" ( (binary_expression "pcVar32 + 0x23630" identifier + number_literal) ))))))) ;)) (expression_statement "pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);" (assignment_expression "pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0)" identifier = (cast_expression "(int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x23624) + -0x51e0)" ( (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x51e0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);" (assignment_expression "pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23638)" ( (binary_expression "pcVar32 + 0x23638" identifier + number_literal) ))))))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0)" identifier = (cast_expression "(int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x23624) + -0x40a0)" ( (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);" (call_expression "(*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppppiVar11,pppppppiVar14,0xb01)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcStack_3d8 = pcVar31 + 0x2b48c;" (assignment_expression "pcStack_3d8 = pcVar31 + 0x2b48c" identifier = (binary_expression "pcVar31 + 0x2b48c" identifier + number_literal)) ;) (expression_statement "piStack_3cc = *(int **)(pcVar31 + 0x23748);" (assignment_expression "piStack_3cc = *(int **)(pcVar31 + 0x23748)" identifier = (pointer_expression "*(int **)(pcVar31 + 0x23748)" * (cast_expression "(int **)(pcVar31 + 0x23748)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x23748)" ( (binary_expression "pcVar31 + 0x23748" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar27 = (int ******)&ppppppiStack_3a4;" (assignment_expression "ppppppiVar27 = (int ******)&ppppppiStack_3a4" identifier = (cast_expression "(int ******)&ppppppiStack_3a4" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&ppppppiStack_3a4" & identifier))) ;) (expression_statement "uVar15 = 0x8000001f;" (assignment_expression "uVar15 = 0x8000001f" identifier = number_literal) ;) (expression_statement "ppppppiVar21 = pppppppiVar11[6];" (assignment_expression "ppppppiVar21 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiStack_9c = (int ******)*piStack_3cc;" (assignment_expression "ppppppiStack_9c = (int ******)*piStack_3cc" identifier = (cast_expression "(int ******)*piStack_3cc" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*piStack_3cc" * identifier))) ;) (expression_statement "pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);" (assignment_expression "pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40)" identifier = (cast_expression "(int *******)((uint)ppppppiVar21[0x3e] & 0x40)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)ppppppiVar21[0x3e] & 0x40)" ( (binary_expression "(uint)ppppppiVar21[0x3e] & 0x40" (cast_expression "(uint)ppppppiVar21[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar21[0x3e]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "iStack_98 = iVar13;" (assignment_expression "iStack_98 = iVar13" identifier = identifier) ;) (expression_statement "iStack_94 = iVar2;" (assignment_expression "iStack_94 = iVar2" identifier = identifier) ;) (expression_statement "iStack_90 = iVar23;" (assignment_expression "iStack_90 = iVar23" identifier = identifier) ;) (expression_statement "ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();" (assignment_expression "ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))()" identifier = (cast_expression "(int ******)(**(code **)(pcVar31 + 0x23740))()" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar31 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar31 + 0x23740))" ( (pointer_expression "**(code **)(pcVar31 + 0x23740)" * (pointer_expression "*(code **)(pcVar31 + 0x23740)" * (cast_expression "(code **)(pcVar31 + 0x23740)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x23740)" ( (binary_expression "pcVar31 + 0x23740" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar11[0x17] = ppppppiVar5;" (assignment_expression "pppppppiVar11[0x17] = ppppppiVar5" (subscript_expression "pppppppiVar11[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);" (assignment_expression "pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fac) + -0x7974" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar25 = (int *******)0x0;" (assignment_expression "pppppppiVar25 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);" statement_identifier : (expression_statement "pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);" (assignment_expression "pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38)" identifier = (binary_expression "(int *******)(uint)*(byte *)(ppppppiVar21 + 0x38)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(ppppppiVar21 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar21 + 0x38)" ( (binary_expression "ppppppiVar21 + 0x38" identifier + number_literal) ))))) ;)) (if_statement "if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" { (labeled_statement "joined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" statement_identifier : (if_statement "if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" if (parenthesized_expression "(ppppppiVar10 != (int ******)0x13)" ( (binary_expression "ppppppiVar10 != (int ******)0x13" identifier != (cast_expression "(int ******)0x13" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" { (expression_statement "pppppppiVar14 = (int *******)0x3;" (assignment_expression "pppppppiVar14 = (int *******)0x3" identifier = (cast_expression "(int *******)0x3" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }" if (parenthesized_expression "(*(char *)(ppppppiVar21 + 0x38) == '\0')" ( (binary_expression "*(char *)(ppppppiVar21 + 0x38) == '\0'" (pointer_expression "*(char *)(ppppppiVar21 + 0x38)" * (cast_expression "(char *)(ppppppiVar21 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar21 + 0x38)" ( (binary_expression "ppppppiVar21 + 0x38" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pppppppiVar14 = (int *******)0x1;\n      }" { (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "FUN_00014148(pppppppiVar11);" (call_expression "FUN_00014148(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;) }))) (labeled_statement "LAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);" statement_identifier : (expression_statement "FUN_00015e38(pppppppiVar11);" (call_expression "FUN_00015e38(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;)) (labeled_statement "LAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" statement_identifier : (if_statement "if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" if (parenthesized_expression "(pppppppiVar11[9] != (int ******)0x0)" ( (binary_expression "pppppppiVar11[9] != (int ******)0x0" (subscript_expression "pppppppiVar11[9]" identifier [ number_literal ]) != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" { (expression_statement "(**(code **)(pcStack_3d8 + -0x7d58))();" (call_expression "(**(code **)(pcStack_3d8 + -0x7d58))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d58))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d58)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d58)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d58)" ( (binary_expression "pcStack_3d8 + -0x7d58" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pppppppiVar11[9] = (int ******)0x0;" (assignment_expression "pppppppiVar11[9] = (int ******)0x0" (subscript_expression "pppppppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }))) (if_statement "if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }" if (parenthesized_expression "(pppppppiVar11[0x29] != (int ******)0xffffffff)" ( (binary_expression "pppppppiVar11[0x29] != (int ******)0xffffffff" (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) != (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }" { (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "(**(code **)(pcStack_3d8 + -0x7ec8))();" (call_expression "(**(code **)(pcStack_3d8 + -0x7ec8))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ec8))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ec8)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ec8)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ec8)" ( (binary_expression "pcStack_3d8 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pppppppiVar16 = (int *******)0x8;" (assignment_expression "pppppppiVar16 = (int *******)0x8" identifier = (cast_expression "(int *******)0x8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }" if (parenthesized_expression "(ppppppiVar21[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar21[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ]) != (cast_expression "(int *****)0xffffffff" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }" { (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7e10))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e10))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e10)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e10)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e10)" ( (binary_expression "pcStack_3d8 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }" if (parenthesized_expression "((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb))" ( (binary_expression "(iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)" (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)" ( (comma_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) (compound_statement "{\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }" { (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(ppppppiVar21);" (call_expression "FUN_00020df0(ppppppiVar21)" identifier (argument_list "(ppppppiVar21)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0001bd0c;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;" if (parenthesized_expression "(ppppppiVar10 == (int ******)0x13)" ( (binary_expression "ppppppiVar10 == (int ******)0x13" identifier == (cast_expression "(int ******)0x13" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bdfc;" goto statement_identifier ;)) (expression_statement "unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);" (assignment_expression "unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5)" identifier = (binary_expression "(int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)pppppppiVar11 + 0xf5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar11 + 0xf5)" ( (binary_expression "(int)pppppppiVar11 + 0xf5" (cast_expression "(int)pppppppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s7 = (int *******)ppppppiVar21[0x3c];" (assignment_expression "unaff_s7 = (int *******)ppppppiVar21[0x3c]" identifier = (cast_expression "(int *******)ppppppiVar21[0x3c]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppiVar21[0x3c]" identifier [ number_literal ]))) ;) (if_statement "if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0))" ( (binary_expression "(unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)" (parenthesized_expression "(unaff_s6 != (int *******)0x0)" ( (binary_expression "unaff_s6 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar11[0x38] == (int ******)0x0)" ( (binary_expression "pppppppiVar11[0x38] == (int ******)0x0" (subscript_expression "pppppppiVar11[0x38]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" { (expression_statement "ppppppiVar5 = (int ******)ppppppiVar21[0x37];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar21[0x37]" identifier = (cast_expression "(int ******)ppppppiVar21[0x37]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar25 = unaff_s6;" (assignment_expression "pppppppiVar25 = unaff_s6" identifier = identifier) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" { (expression_statement "pppppppiStack_3c8 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c8 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar14 = pppppppiStack_3c8" identifier = identifier) ;) (do_statement "do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);" do (compound_statement "{\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      }" { (expression_statement "*pppppppiVar14 = (int ******)0x0;" (assignment_expression "*pppppppiVar14 = (int ******)0x0" (pointer_expression "*pppppppiVar14" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiVar14 + 1;" (assignment_expression "pppppppiVar14 = pppppppiVar14 + 1" identifier = (binary_expression "pppppppiVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppiVar14 != appppppiStack_31c)" ( (binary_expression "pppppppiVar14 != appppppiStack_31c" identifier != identifier) )) ;) (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);" (assignment_expression "iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0)" identifier = (call_expression "FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0)" identifier (argument_list "(ppppppiVar5,pppppppiStack_3c8,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "pppppppiVar17 = (int *******)0x0;" (assignment_expression "pppppppiVar17 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3e0 = (int *******)0x0;" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar14 = pppppppiStack_3c8" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" ( (binary_expression "pcStack_3d8 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" ( (binary_expression "(int)ppppppiVar21[0x37] + 1" (cast_expression "(int)ppppppiVar21[0x37]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ])) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar2) goto LAB_0001c380;" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c380;" goto statement_identifier ;)) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar16 = (int *******)*puVar9;" (assignment_expression "pppppppiVar16 = (int *******)*puVar9" identifier = (cast_expression "(int *******)*puVar9" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puVar9" * identifier))) ;) (if_statement "if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;" if (parenthesized_expression "(pppppppiVar16 == (int *******)0x4)" ( (binary_expression "pppppppiVar16 == (int *******)0x4" identifier == (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001c13c;" goto statement_identifier ;)) (expression_statement "pppppppiVar25 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar25 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar16)" ( identifier ))))) ;) (expression_statement "pppppppiVar18 = pppppppiVar16;" (assignment_expression "pppppppiVar18 = pppppppiVar16" identifier = identifier) ;) (expression_statement "pppppppiVar24 = pppppppiVar25;" (assignment_expression "pppppppiVar24 = pppppppiVar25" identifier = identifier) ;) (labeled_statement "LAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" statement_identifier : (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);" (call_expression "FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16)" identifier (argument_list "(pppppppiVar25,pppppppiVar14,pppppppiVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "uStack_3a0 = 0x10000;" (assignment_expression "uStack_3a0 = 0x10000" identifier = number_literal) ;) (expression_statement "ppppppiStack_3a4 = ppppppiVar5;" (assignment_expression "ppppppiStack_3a4 = ppppppiVar5" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" * (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7dac)" ( (binary_expression "pcStack_3d8 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar27,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" { (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" if (parenthesized_expression "(*piVar4 != 4)" ( (binary_expression "*piVar4 != 4" (pointer_expression "*piVar4" * identifier) != number_literal) )) (compound_statement "{\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" { (labeled_statement "LAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];" statement_identifier : (expression_statement "pppppppiVar18 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;)) (expression_statement "uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();" (assignment_expression "uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);" (call_expression "FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6)" identifier (argument_list "(pppppppiVar18,pppppppiVar14,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" else (compound_statement "{\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" { (labeled_statement "LAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;" statement_identifier : (expression_statement "pppppppiVar14 = &ppppppiStack_3b0;" (assignment_expression "pppppppiVar14 = &ppppppiStack_3b0" identifier = (pointer_expression "&ppppppiStack_3b0" & identifier)) ;)) (expression_statement "(**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);" (call_expression "(**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d18))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d18)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d18)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d18)" ( (binary_expression "pcStack_3d8 + -0x7d18" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar21[0x37],pppppppiVar14,8)" ( (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (if_statement "if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" if (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" ( (binary_expression "pppppppiVar25 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" { (expression_statement "FUN_0001478c(pppppppiVar11);" (call_expression "FUN_0001478c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;) (expression_statement "FUN_00015e38(pppppppiVar11);" (call_expression "FUN_00015e38(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;) })) (expression_statement "ppppppiVar5 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar5 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar25 = (int *******)0x0;" (assignment_expression "pppppppiVar25 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0))))" ( (binary_expression "(ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))" (parenthesized_expression "(ppppppiVar5 != (int ******)0x2)" ( (binary_expression "ppppppiVar5 != (int ******)0x2" identifier != (cast_expression "(int ******)0x2" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))" ( (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0))" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)" (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" * (cast_expression "(char *)(pppppppiVar11 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x3d)" ( (binary_expression "pppppppiVar11 + 0x3d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) ))) )) (compound_statement "{\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" { (if_statement "if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" if (parenthesized_expression "(0 < (int)unaff_s7)" ( (binary_expression "0 < (int)unaff_s7" number_literal < (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" { (expression_statement "iVar2 = FUN_0002186c();" (assignment_expression "iVar2 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" if (parenthesized_expression "((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25])" ( (binary_expression "(int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar2 - (int)pppppppiVar11[0x25]" identifier - (cast_expression "(int)pppppppiVar11[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x25]" identifier [ number_literal ])))) )) (compound_statement "{\n        unaff_s7 = (int *******)0x0;\n      }" { (expression_statement "unaff_s7 = (int *******)0x0;" (assignment_expression "unaff_s7 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" else (compound_statement "{\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" { (expression_statement "unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));" (assignment_expression "unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" identifier = (cast_expression "(int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" ( (binary_expression "(int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25])" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "(iVar2 - (int)pppppppiVar11[0x25])" ( (binary_expression "iVar2 - (int)pppppppiVar11[0x25]" identifier - (cast_expression "(int)pppppppiVar11[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x25]" identifier [ number_literal ]))) ))) )))) ;) }))) (expression_statement "ppppppiVar5 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar5 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "pppppppiStack_3b8 = unaff_s7;" (assignment_expression "pppppppiStack_3b8 = unaff_s7" identifier = identifier) ;) (goto_statement "goto LAB_0001bc90;" goto statement_identifier ;) })) (expression_statement "pppppppiVar16 = (int *******)0x0;" (assignment_expression "pppppppiVar16 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001be20;" goto statement_identifier ;)) (labeled_statement "LAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];" statement_identifier : (expression_statement "ppppppiStack_3a4 = pppppppiVar11[0x29];" (assignment_expression "ppppppiStack_3a4 = pppppppiVar11[0x29]" identifier = (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) ;)) (expression_statement "uStack_3a0 = 0;" (assignment_expression "uStack_3a0 = 0" identifier = number_literal) ;) (if_statement "if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x1)" ( (binary_expression "ppppppiVar5 == (int ******)0x1" identifier == (cast_expression "(int ******)0x1" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      uStack_3a0 = 0x60000;\n    }" { (expression_statement "uStack_3a0 = 0x60000;" (assignment_expression "uStack_3a0 = 0x60000" identifier = number_literal) ;) }) (else_clause "else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" else (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      uStack_3a0 = 0x30000;\n    }" { (expression_statement "uStack_3a0 = 0x30000;" (assignment_expression "uStack_3a0 = 0x30000" identifier = number_literal) ;) }) (else_clause "else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" else (if_statement "if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x2)" ( (binary_expression "ppppppiVar5 == (int ******)0x2" identifier == (cast_expression "(int ******)0x2" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      uStack_3a0 = 0x20000;\n    }" { (expression_statement "uStack_3a0 = 0x20000;" (assignment_expression "uStack_3a0 = 0x20000" identifier = number_literal) ;) }) (else_clause "else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" else (if_statement "if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x3)" ( (binary_expression "ppppppiVar5 == (int ******)0x3" identifier == (cast_expression "(int ******)0x3" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)))))))) (if_statement "if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" if (parenthesized_expression "(pppppppiVar16 == (int *******)0x0)" ( (binary_expression "pppppppiVar16 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" else (compound_statement "{\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" { (expression_statement "iVar2 = (int)pppppppiStack_3b8 * 1000;" (assignment_expression "iVar2 = (int)pppppppiStack_3b8 * 1000" identifier = (binary_expression "(int)pppppppiStack_3b8 * 1000" (cast_expression "(int)pppppppiStack_3b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) }))) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" * (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7dac)" ( (binary_expression "pcStack_3d8 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar27,1,iVar2)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" { (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar4 != 4) goto LAB_0001bd98;" if (parenthesized_expression "(*piVar4 != 4)" ( (binary_expression "*piVar4 != 4" (pointer_expression "*piVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_0001bd98;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" else (compound_statement "{\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" { (expression_statement "pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);" (assignment_expression "pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f)" identifier = (cast_expression "(int *******)((uStack_3a0 << 0x1d) >> 0x1f)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uStack_3a0 << 0x1d) >> 0x1f)" ( (binary_expression "(uStack_3a0 << 0x1d) >> 0x1f" (parenthesized_expression "(uStack_3a0 << 0x1d)" ( (binary_expression "uStack_3a0 << 0x1d" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);" (assignment_expression "pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0)" identifier = (cast_expression "(int *******)(uint)((uStack_3a0 & 0xba) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((uStack_3a0 & 0xba) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uStack_3a0 & 0xba) != 0)" ( (binary_expression "(uStack_3a0 & 0xba) != 0" (parenthesized_expression "(uStack_3a0 & 0xba)" ( (binary_expression "uStack_3a0 & 0xba" identifier & number_literal) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);" (assignment_expression "pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1)" identifier = (cast_expression "(int *******)((int)uStack_3a0._2_2_ & 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)uStack_3a0._2_2_ & 1)" ( (binary_expression "(int)uStack_3a0._2_2_ & 1" (cast_expression "(int)uStack_3a0._2_2_" ( (type_descriptor "int" primitive_type) ) (field_expression "uStack_3a0._2_2_" identifier . field_identifier)) & number_literal) )))) ;) (expression_statement "iVar2 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar2 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;" if (parenthesized_expression "(ppppppiVar10 == (int ******)0x14)" ( (binary_expression "ppppppiVar10 == (int ******)0x14" identifier == (cast_expression "(int ******)0x14" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001c01c;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (expression_statement "pppppppiStack_3b8 = (int *******)0x0;" (assignment_expression "pppppppiStack_3b8 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_0001bc90:\n  uStack_3b4 = 0;" statement_identifier : (expression_statement "uStack_3b4 = 0;" (assignment_expression "uStack_3b4 = 0" identifier = number_literal) ;)) (expression_statement "pppppppiVar16 = (int *******)&pppppppiStack_3b8;" (assignment_expression "pppppppiVar16 = (int *******)&pppppppiStack_3b8" identifier = (cast_expression "(int *******)&pppppppiStack_3b8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppiStack_3b8" & identifier))) ;) (if_statement "if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;" if (parenthesized_expression "(pppppppiVar24 != (int *******)0x0)" ( (binary_expression "pppppppiVar24 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bc98;" goto statement_identifier ;)) (labeled_statement "LAB_0001be20:\n  unaff_s6 = appppppiStack_31c;" statement_identifier : (expression_statement "unaff_s6 = appppppiStack_31c;" (assignment_expression "unaff_s6 = appppppiStack_31c" identifier = identifier) ;)) (expression_statement "pppppppiVar7 = appppppiStack_39c;" (assignment_expression "pppppppiVar7 = appppppiStack_39c" identifier = identifier) ;) (do_statement "do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);" do (compound_statement "{\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  }" { (expression_statement "*pppppppiVar7 = (int ******)0x0;" (assignment_expression "*pppppppiVar7 = (int ******)0x0" (pointer_expression "*pppppppiVar7" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar7 = pppppppiVar7 + 1;" (assignment_expression "pppppppiVar7 = pppppppiVar7 + 1" identifier = (binary_expression "pppppppiVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s6 != pppppppiVar7)" ( (binary_expression "unaff_s6 != pppppppiVar7" identifier != identifier) )) ;) (expression_statement "unaff_s7 = appppppiStack_29c;" (assignment_expression "unaff_s7 = appppppiStack_29c" identifier = identifier) ;) (expression_statement "pppppppiVar7 = unaff_s6;" (assignment_expression "pppppppiVar7 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);" do (compound_statement "{\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  }" { (expression_statement "*pppppppiVar7 = (int ******)0x0;" (assignment_expression "*pppppppiVar7 = (int ******)0x0" (pointer_expression "*pppppppiVar7" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar7 = pppppppiVar7 + 1;" (assignment_expression "pppppppiVar7 = pppppppiVar7 + 1" identifier = (binary_expression "pppppppiVar7 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar8 = unaff_s7;" (assignment_expression "pppppppiVar8 = unaff_s7" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s7 != pppppppiVar7)" ( (binary_expression "unaff_s7 != pppppppiVar7" identifier != identifier) )) ;) (do_statement "do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);" do (compound_statement "{\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  }" { (expression_statement "*pppppppiVar8 = (int ******)0x0;" (assignment_expression "*pppppppiVar8 = (int ******)0x0" (pointer_expression "*pppppppiVar8" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar8 = pppppppiVar8 + 1;" (assignment_expression "pppppppiVar8 = pppppppiVar8 + 1" identifier = (binary_expression "pppppppiVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(appppppiStack_21c != pppppppiVar8)" ( (binary_expression "appppppiStack_21c != pppppppiVar8" identifier != identifier) )) ;) (expression_statement "iStack_3c0 = -1;" (assignment_expression "iStack_3c0 = -1" identifier = number_literal) ;) (if_statement "if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x1)" ( (binary_expression "ppppppiVar5 != (int ******)0x1" identifier != (cast_expression "(int ******)0x1" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" { (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }" { (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3c8 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c8 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "pppppppiStack_3c4 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c4 = pppppppiVar16" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" identifier (argument_list "(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&iStack_3c0" & identifier) )))) ;) (if_statement "if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }" { (expression_statement "iVar2 = iStack_3c0 + 1;" (assignment_expression "iVar2 = iStack_3c0 + 1" identifier = (binary_expression "iStack_3c0 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar7 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar7 = pppppppiStack_3c8" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiStack_3c4;" (assignment_expression "pppppppiVar16 = pppppppiStack_3c4" identifier = identifier) ;) (goto_statement "goto LAB_0001be8c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);" statement_identifier : (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "FUN_00020df0(pppppppiVar11[6]);" (call_expression "FUN_00020df0(pppppppiVar11[6])" identifier (argument_list "(pppppppiVar11[6])" ( (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" else (compound_statement "{\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" { (if_statement "if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x2)" ( (binary_expression "ppppppiVar5 == (int ******)0x2" identifier == (cast_expression "(int ******)0x2" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" { (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3c8 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar16" identifier = identifier) ;) (expression_statement "pppppppiStack_3c4 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c4 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&iStack_3c0" & identifier) )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0001c1ec;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001c1ec;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar7 = appppppiStack_39c;" (assignment_expression "pppppppiVar7 = appppppiStack_39c" identifier = identifier) ;) (if_statement "if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x3)" ( (binary_expression "ppppppiVar5 != (int ******)0x3" identifier != (cast_expression "(int ******)0x3" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001be8c;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;) })) (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3c8 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar16" identifier = identifier) ;) (expression_statement "pppppppiStack_3c4 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c4 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&iStack_3c0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;" statement_identifier : (expression_statement "iVar2 = iStack_3c0 + 1;" (assignment_expression "iVar2 = iStack_3c0 + 1" identifier = (binary_expression "iStack_3c0 + 1" identifier + number_literal)) ;)) (expression_statement "pppppppiVar7 = pppppppiStack_3c4;" (assignment_expression "pppppppiVar7 = pppppppiStack_3c4" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar16 = pppppppiStack_3c8" identifier = identifier) ;) (labeled_statement "LAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;" statement_identifier : (expression_statement "pppppppiVar14 = pppppppiVar7;" (assignment_expression "pppppppiVar14 = pppppppiVar7" identifier = identifier) ;)) (expression_statement "pppppppiVar17 = unaff_s7;" (assignment_expression "pppppppiVar17 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_3e0 = pppppppiVar16;" (assignment_expression "pppppppiStack_3e0 = pppppppiVar16" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" ( (binary_expression "pcStack_3d8 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2,pppppppiVar14,unaff_s6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" { (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar16 = (int *******)*puVar9;" (assignment_expression "pppppppiVar16 = (int *******)*puVar9" identifier = (cast_expression "(int *******)*puVar9" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "unaff_s6 = pppppppiVar16;" (assignment_expression "unaff_s6 = pppppppiVar16" identifier = identifier) ;) (if_statement "if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }" if (parenthesized_expression "(pppppppiVar16 != (int *******)0x4)" ( (binary_expression "pppppppiVar16 != (int *******)0x4" identifier != (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }" { (expression_statement "pppppppiVar25 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar25 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar16)" ( identifier ))))) ;) (expression_statement "pppppppiVar18 = pppppppiVar25;" (assignment_expression "pppppppiVar18 = pppppppiVar25" identifier = identifier) ;) (goto_statement "goto LAB_0001c18c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001c1b0;" goto statement_identifier ;) })) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29])" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29])" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d84)" ( (binary_expression "pcStack_3d8 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar11[0x29])" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) )))) ;) (expression_statement "unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;" (assignment_expression "unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" identifier = (cast_expression "(int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" ( (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) & number_literal) ))) & (cast_expression "(uint)appppppiStack_39c[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "appppppiStack_39c[iVar2]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d84)" ( (binary_expression "pcStack_3d8 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;" (assignment_expression "unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" identifier = (cast_expression "(int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" ( (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) & number_literal) ))) & (cast_expression "(uint)appppppiStack_31c[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "appppppiStack_31c[iVar2]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d84)" ( (binary_expression "pcStack_3d8 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);" (assignment_expression "pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" identifier = (cast_expression "(int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" ( (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) & number_literal) ))) & (cast_expression "(uint)appppppiStack_29c[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "appppppiStack_29c[iVar2]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar14 = unaff_s6;" (assignment_expression "pppppppiVar14 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiVar16 = unaff_s7;" (assignment_expression "pppppppiVar16 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar2 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;" if (parenthesized_expression "(ppppppiVar10 != (int ******)0x14)" ( (binary_expression "ppppppiVar10 != (int ******)0x14" identifier != (cast_expression "(int ******)0x14" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;)) (labeled_statement "LAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" statement_identifier : (if_statement "if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" if (parenthesized_expression "((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'))" ( (binary_expression "(ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (parenthesized_expression "(ppppppiVar21[0x12] != (int *****)0x0)" ( (binary_expression "ppppppiVar21[0x12] != (int *****)0x0" (subscript_expression "ppppppiVar21[0x12]" identifier [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" ( (comma_expression "pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'" (assignment_expression "pppppppiVar17 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "*(char *)(pppppppiVar11 + 0x28) != '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x28)" * (cast_expression "(char *)(pppppppiVar11 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x28)" ( (binary_expression "pppppppiVar11 + 0x28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" { (expression_statement "pppppppiVar16 = pppppppiVar11 + 0xb;" (assignment_expression "pppppppiVar16 = pppppppiVar11 + 0xb" identifier = (binary_expression "pppppppiVar11 + 0xb" identifier + number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiVar11;" (assignment_expression "pppppppiVar14 = pppppppiVar11" identifier = identifier) ;) (expression_statement "(*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);" (call_expression "(*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13])" (parenthesized_expression "(*(code *)ppppppiVar21[0x12])" ( (pointer_expression "*(code *)ppppppiVar21[0x12]" * (cast_expression "(code *)ppppppiVar21[0x12]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppiVar21[0x12]" identifier [ number_literal ]))) )) (argument_list "(ppppppiVar21[0x13])" ( (subscript_expression "ppppppiVar21[0x13]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "*(undefined1 *)(pppppppiVar11 + 0x28) = 0;" (assignment_expression "*(undefined1 *)(pppppppiVar11 + 0x28) = 0" (pointer_expression "*(undefined1 *)(pppppppiVar11 + 0x28)" * (cast_expression "(undefined1 *)(pppppppiVar11 + 0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x28)" ( (binary_expression "pppppppiVar11 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s6 = (int *******)pppppppiVar11[0x38];" (assignment_expression "unaff_s6 = (int *******)pppppppiVar11[0x38]" identifier = (cast_expression "(int *******)pppppppiVar11[0x38]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[0x38]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" if (parenthesized_expression "(((uint)pppppppiVar11[6][0x3e] & 0x42) == 2)" ( (binary_expression "((uint)pppppppiVar11[6][0x3e] & 0x42) == 2" (parenthesized_expression "((uint)pppppppiVar11[6][0x3e] & 0x42)" ( (binary_expression "(uint)pppppppiVar11[6][0x3e] & 0x42" (cast_expression "(uint)pppppppiVar11[6][0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[6][0x3e]" (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }" { (expression_statement "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);" (assignment_expression "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(undefined4 *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" ( (binary_expression "pcStack_3d8 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);" (assignment_expression "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" identifier = (cast_expression "(int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);" do (compound_statement "{\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    }" { (while_statement "while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }" { (expression_statement "unaff_s7 = appppppiStack_21c;" (assignment_expression "unaff_s7 = appppppiStack_21c" identifier = identifier) ;) (expression_statement "pppppppiVar25 = unaff_s7;" (assignment_expression "pppppppiVar25 = unaff_s7" identifier = identifier) ;) (if_statement "if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;" if (parenthesized_expression "((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0)" (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0))" ( (binary_expression "(unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)" (parenthesized_expression "(unaff_s6[8] == (int ******)0x0)" ( (binary_expression "unaff_s6[8] == (int ******)0x0" (subscript_expression "unaff_s6[8]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)" ( (comma_expression "pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0" (assignment_expression "pppppppiVar26 = appppppiStack_19c" identifier = identifier) , (binary_expression "unaff_s6[9] == (int ******)0x0" (subscript_expression "unaff_s6[9]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) && (parenthesized_expression "(unaff_s6[10] == (int ******)0x0)" ( (binary_expression "unaff_s6[10] == (int ******)0x0" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "(unaff_s6[0xb] == (int ******)0x0)" ( (binary_expression "unaff_s6[0xb] == (int ******)0x0" (subscript_expression "unaff_s6[0xb]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;)) (do_statement "do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);" do (compound_statement "{\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        }" { (expression_statement "pppppppiVar26 = appppppiStack_19c;" (assignment_expression "pppppppiVar26 = appppppiStack_19c" identifier = identifier) ;) (expression_statement "*pppppppiVar25 = (int ******)0x0;" (assignment_expression "*pppppppiVar25 = (int ******)0x0" (pointer_expression "*pppppppiVar25" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar25 = pppppppiVar25 + 1;" (assignment_expression "pppppppiVar25 = pppppppiVar25 + 1" identifier = (binary_expression "pppppppiVar25 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar18 = appppppiStack_11c;" (assignment_expression "pppppppiVar18 = appppppiStack_11c" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiVar26;" (assignment_expression "pppppppiVar14 = pppppppiVar26" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar26 != pppppppiVar25)" ( (binary_expression "pppppppiVar26 != pppppppiVar25" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);" do (compound_statement "{\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        }" { (expression_statement "*pppppppiVar14 = (int ******)0x0;" (assignment_expression "*pppppppiVar14 = (int ******)0x0" (pointer_expression "*pppppppiVar14" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiVar14 + 1;" (assignment_expression "pppppppiVar14 = pppppppiVar14 + 1" identifier = (binary_expression "pppppppiVar14 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar25 = pppppppiVar18;" (assignment_expression "pppppppiVar25 = pppppppiVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar18 != pppppppiVar14)" ( (binary_expression "pppppppiVar18 != pppppppiVar14" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);" do (compound_statement "{\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        }" { (expression_statement "*pppppppiVar25 = (int ******)0x0;" (assignment_expression "*pppppppiVar25 = (int ******)0x0" (pointer_expression "*pppppppiVar25" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar25 = pppppppiVar25 + 1;" (assignment_expression "pppppppiVar25 = pppppppiVar25 + 1" identifier = (binary_expression "pppppppiVar25 + 1" identifier + number_literal)) ;) (expression_statement "ppppppiVar27 = (int ******)0xffffffff;" (assignment_expression "ppppppiVar27 = (int ******)0xffffffff" identifier = (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) while (parenthesized_expression "(pppppppiVar25 != &ppppppiStack_9c)" ( (binary_expression "pppppppiVar25 != &ppppppiStack_9c" identifier != (pointer_expression "&ppppppiStack_9c" & identifier)) )) ;) (expression_statement "uStack_3dc = 0x400;" (assignment_expression "uStack_3dc = 0x400" identifier = number_literal) ;) (expression_statement "pppppppiStack_3e0 = &ppppppiStack_3bc;" (assignment_expression "pppppppiStack_3e0 = &ppppppiStack_3bc" identifier = (pointer_expression "&ppppppiStack_3bc" & identifier)) ;) (expression_statement "ppppppiStack_3bc = (int ******)0xffffffff;" (assignment_expression "ppppppiStack_3bc = (int ******)0xffffffff" identifier = (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00017e20(unaff_s6,unaff_s7);" (assignment_expression "iVar2 = FUN_00017e20(unaff_s6,unaff_s7)" identifier = (call_expression "FUN_00017e20(unaff_s6,unaff_s7)" identifier (argument_list "(unaff_s6,unaff_s7)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" { (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar11[6]);" (call_expression "FUN_00020df0(pppppppiVar11[6])" identifier (argument_list "(pppppppiVar11[6])" ( (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;) })) (if_statement "if (ppppppiStack_3bc != (int ******)0xffffffff) break;" if (parenthesized_expression "(ppppppiStack_3bc != (int ******)0xffffffff)" ( (binary_expression "ppppppiStack_3bc != (int ******)0xffffffff" identifier != (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;" statement_identifier : (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" identifier = identifier) ;)) (expression_statement "FUN_00018420(unaff_s6);" (call_expression "FUN_00018420(unaff_s6)" identifier (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "FUN_00018878(unaff_s6);" (call_expression "FUN_00018878(unaff_s6)" identifier (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" identifier = identifier) ;) })) (expression_statement "pppppppiStack_3e0 = (int *******)0x0;" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }" if (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]))" ( (binary_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0')" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) != '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" * (cast_expression "(char *)(pppppppiVar11 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x3d)" ( (binary_expression "pppppppiVar11 + 0x3d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" ( (comma_expression "pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "unaff_s6[10] < unaff_s6[8]" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) < (subscript_expression "unaff_s6[8]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }" { (expression_statement "pppppppiStack_3e0 = &ppppppiStack_3b0;" (assignment_expression "pppppppiStack_3e0 = &ppppppiStack_3b0" identifier = (pointer_expression "&ppppppiStack_3b0" & identifier)) ;) (expression_statement "ppppppiStack_3b0 = (int ******)0x0;" (assignment_expression "ppppppiStack_3b0 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_3ac = 0;" (assignment_expression "uStack_3ac = 0" identifier = number_literal) ;) })) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" ( (binary_expression "pcStack_3d8 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiStack_3bc + 1)" ( (binary_expression "(int)ppppppiStack_3bc + 1" (cast_expression "(int)ppppppiStack_3bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (-1 < iVar2) goto LAB_0001c4bc;" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c4bc;" goto statement_identifier ;)) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar18 = (int *******)*puVar9;" (assignment_expression "pppppppiVar18 = (int *******)*puVar9" identifier = (cast_expression "(int *******)*puVar9" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puVar9" * identifier))) ;) }) while (parenthesized_expression "(pppppppiVar18 == (int *******)0x4)" ( (binary_expression "pppppppiVar18 == (int *******)0x4" identifier == (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (expression_statement "ppppppiVar21 = pppppppiVar11[6];" (assignment_expression "ppppppiVar21 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar18)" ( identifier ))))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar16 = pppppppiVar18;" (assignment_expression "pppppppiVar16 = pppppppiVar18" identifier = identifier) ;) (expression_statement "FUN_00020df0(ppppppiVar21);" (call_expression "FUN_00020df0(ppppppiVar21)" identifier (argument_list "(ppppppiVar21)" ( identifier ))) ;) }) (else_clause "else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" else (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" if (parenthesized_expression "(((uint)pppppppiVar11[6][0x3e] & 2) != 0)" ( (binary_expression "((uint)pppppppiVar11[6][0x3e] & 2) != 0" (parenthesized_expression "((uint)pppppppiVar11[6][0x3e] & 2)" ( (binary_expression "(uint)pppppppiVar11[6][0x3e] & 2" (cast_expression "(uint)pppppppiVar11[6][0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[6][0x3e]" (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" { (expression_statement "pppppppiVar14 = appppppiStack_11c;" (assignment_expression "pppppppiVar14 = appppppiStack_11c" identifier = identifier) ;) (expression_statement "appppppiStack_11c[1] = (int ******)0x0;" (assignment_expression "appppppiStack_11c[1] = (int ******)0x0" (subscript_expression "appppppiStack_11c[1]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" ( (binary_expression "pcStack_3d8 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "appppppiStack_11c[3] = (int ******)0x0;" (assignment_expression "appppppiStack_11c[3] = (int ******)0x0" (subscript_expression "appppppiStack_11c[3]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);" (assignment_expression "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" identifier = (cast_expression "(int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" ( (binary_expression "pcStack_3d8 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);" (assignment_expression "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(undefined4 *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];" (assignment_expression "appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29]" (subscript_expression "appppppiStack_11c[0]" identifier [ number_literal ]) = (cast_expression "(int ******)(*unaff_s6)[0x29]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "(*unaff_s6)[0x29]" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) [ number_literal ]))) ;) (expression_statement "appppppiStack_11c[2] = unaff_s6[0x10];" (assignment_expression "appppppiStack_11c[2] = unaff_s6[0x10]" (subscript_expression "appppppiStack_11c[2]" identifier [ number_literal ]) = (subscript_expression "unaff_s6[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);" do (compound_statement "{\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    }" { (while_statement "while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }" { (if_statement "if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;" if (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0))))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0))" ( (binary_expression "(unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)" (parenthesized_expression "(unaff_s6[8] == (int ******)0x0)" ( (binary_expression "unaff_s6[8] == (int ******)0x0" (subscript_expression "unaff_s6[8]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(unaff_s6[9] == (int ******)0x0)" ( (binary_expression "unaff_s6[9] == (int ******)0x0" (subscript_expression "unaff_s6[9]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))" ( (parenthesized_expression "(unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)" (binary_expression "unaff_s6[10] == (int ******)0x0" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) && (parenthesized_expression "(pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)" ( (comma_expression "pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0" (assignment_expression "pppppppiVar18 = pppppppiVar14" identifier = identifier) , (binary_expression "unaff_s6[0xb] == (int ******)0x0" (subscript_expression "unaff_s6[0xb]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) ))) )) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;)) (expression_statement "FUN_00017b40(unaff_s6);" (call_expression "FUN_00017b40(unaff_s6)" identifier (argument_list "(unaff_s6)" ( identifier ))) ;) (if_statement "if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" if (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0')" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" * (cast_expression "(char *)(pppppppiVar11 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x3d)" ( (binary_expression "pppppppiVar11 + 0x3d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pppppppiVar16 = (int *******)0xffffffff;\n        }" { (expression_statement "pppppppiVar16 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar16 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" else (compound_statement "{\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" { (expression_statement "pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);" (assignment_expression "pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" identifier = (cast_expression "(int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((unaff_s6[10] < unaff_s6[8]) - 1)" ( (binary_expression "(unaff_s6[10] < unaff_s6[8]) - 1" (parenthesized_expression "(unaff_s6[10] < unaff_s6[8])" ( (binary_expression "unaff_s6[10] < unaff_s6[8]" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) < (subscript_expression "unaff_s6[8]" identifier [ number_literal ])) )) - number_literal) )))) ;) }))) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" * (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7dac)" ( (binary_expression "pcStack_3d8 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar14,2)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 < 0) break;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00017c40(unaff_s6,pppppppiVar14);" (call_expression "FUN_00017c40(unaff_s6,pppppppiVar14)" identifier (argument_list "(unaff_s6,pppppppiVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_00018878();" (call_expression "FUN_00018878()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(*piVar4 == 4)" ( (binary_expression "*piVar4 == 4" (pointer_expression "*piVar4" * identifier) == number_literal) )) ;) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();" (assignment_expression "pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))()" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar18);" (call_expression "FUN_00020df0(pppppppiVar18)" identifier (argument_list "(pppppppiVar18)" ( identifier ))) ;) })))) (labeled_statement "LAB_0001c074:\n  FUN_00014600(pppppppiVar11);" statement_identifier : (expression_statement "FUN_00014600(pppppppiVar11);" (call_expression "FUN_00014600(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;)) (expression_statement "pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);" (assignment_expression "pcVar31 = *(code **)(pcStack_3d8 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_3d8 + -0x7df4)" * (cast_expression "(code **)(pcStack_3d8 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7df4)" ( (binary_expression "pcStack_3d8 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51)" * (cast_expression "(undefined1 *)((int)pppppppiVar11[0x38] + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar11[0x38] + 0x51)" ( (binary_expression "(int)pppppppiVar11[0x38] + 0x51" (cast_expression "(int)pppppppiVar11[0x38]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x38]" identifier [ number_literal ])) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar31)(pppppppiVar11);" (call_expression "(*pcVar31)(pppppppiVar11)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppppiVar11)" ( identifier ))) ;) (labeled_statement "LAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }" statement_identifier : (if_statement "if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }" if (parenthesized_expression "(ppppppiStack_9c == (int ******)*piStack_3cc)" ( (binary_expression "ppppppiStack_9c == (int ******)*piStack_3cc" identifier == (cast_expression "(int ******)*piStack_3cc" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*piStack_3cc" * identifier))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);" (assignment_expression "pcVar31 = *(code **)(pcStack_3d8 + -0x7d78)" identifier = (pointer_expression "*(code **)(pcStack_3d8 + -0x7d78)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d78)" ( (binary_expression "pcStack_3d8 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = FUN_0001c688;" (assignment_expression "pcVar32 = FUN_0001c688" identifier = identifier) ;) (expression_statement "ppppppiVar5 = ppppppiStack_9c;" (assignment_expression "ppppppiVar5 = ppppppiStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = *(int **)(pcVar31 + 0x22c64);" (assignment_expression "piVar4 = *(int **)(pcVar31 + 0x22c64)" identifier = (pointer_expression "*(int **)(pcVar31 + 0x22c64)" * (cast_expression "(int **)(pcVar31 + 0x22c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c64)" ( (binary_expression "pcVar31 + 0x22c64" identifier + number_literal) ))))) ;) (expression_statement "iStack_41c = *piVar4;" (assignment_expression "iStack_41c = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(undefined1 *)(ppppppiVar5 + 0x39) = 0;" (assignment_expression "*(undefined1 *)(ppppppiVar5 + 0x39) = 0" (pointer_expression "*(undefined1 *)(ppppppiVar5 + 0x39)" * (cast_expression "(undefined1 *)(ppppppiVar5 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5 + 0x39)" ( (binary_expression "ppppppiVar5 + 0x39" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppppiStack_418 = pppppppiVar18;" (assignment_expression "pppppppiStack_418 = pppppppiVar18" identifier = identifier) ;) (expression_statement "ppppppiStack_414 = ppppppiVar21;" (assignment_expression "ppppppiStack_414 = ppppppiVar21" identifier = identifier) ;) (expression_statement "pppppppiStack_410 = pppppppiVar24;" (assignment_expression "pppppppiStack_410 = pppppppiVar24" identifier = identifier) ;) (expression_statement "uStack_40c = uVar15;" (assignment_expression "uStack_40c = uVar15" identifier = identifier) ;) (expression_statement "pppppppiStack_408 = pppppppiVar26;" (assignment_expression "pppppppiStack_408 = pppppppiVar26" identifier = identifier) ;) (expression_statement "ppppppiStack_404 = ppppppiVar27;" (assignment_expression "ppppppiStack_404 = ppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiStack_400 = unaff_s6;" (assignment_expression "pppppppiStack_400 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiStack_3fc = unaff_s7;" (assignment_expression "pppppppiStack_3fc = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_3f8 = pppppppiVar11;" (assignment_expression "pppppppiStack_3f8 = pppppppiVar11" identifier = identifier) ;) (expression_statement "pcStack_3f4 = pcVar32;" (assignment_expression "pcStack_3f4 = pcVar32" identifier = identifier) ;) (if_statement "if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }" if (parenthesized_expression "(ppppppiVar5[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar5[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar5[0x37]" identifier [ number_literal ]) != (cast_expression "(int *****)0xffffffff" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }" { (expression_statement "iVar2 = (**(code **)(pcVar31 + 0x22c24))();" (assignment_expression "iVar2 = (**(code **)(pcVar31 + 0x22c24))()" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppiVar12 = ppppppiVar5[0x37];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x37]" identifier = (subscript_expression "ppppppiVar5[0x37]" identifier [ number_literal ])) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" if (parenthesized_expression "((int)pppppiVar12 < 0)" ( (binary_expression "(int)pppppiVar12 < 0" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22c90);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22c90)" * (cast_expression "(code **)(pcVar31 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c90)" ( (binary_expression "pcVar31 + 0x22c90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" else (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22c90);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22c90)" * (cast_expression "(code **)(pcVar31 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c90)" ( (binary_expression "pcVar31 + 0x22c90" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }" { (expression_statement "(*pcVar32)(pppppiVar12,auStack_428,8);" (call_expression "(*pcVar32)(pppppiVar12,auStack_428,8)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppiVar12,auStack_428,8)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pppppiVar12 = ppppppiVar5[0x31];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x31]" identifier = (subscript_expression "ppppppiVar5[0x31]" identifier [ number_literal ])) ;) (if_statement "if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }" if (parenthesized_expression "((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0'))" ( (binary_expression "(pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')" (parenthesized_expression "(pppppiVar12 != (int *****)0xffffffff)" ( (binary_expression "pppppiVar12 != (int *****)0xffffffff" identifier != (cast_expression "(int *****)0xffffffff" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) && (parenthesized_expression "(*(char *)((int)ppppppiVar5 + 0xe1) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar5 + 0xe1) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xe1)" * (cast_expression "(char *)((int)ppppppiVar5 + 0xe1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xe1)" ( (binary_expression "(int)ppppppiVar5 + 0xe1" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }" { (expression_statement "iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(pppppiVar12)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(pppppiVar12)" ( identifier )))) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" if (parenthesized_expression "((int)pppppiVar12 < 0)" ( (binary_expression "(int)pppppiVar12 < 0" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) }) (else_clause "else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" else (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) }))) (if_statement "if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0001afec(ppppppiVar5);\n    }" { (expression_statement "FUN_0001afec(ppppppiVar5);" (call_expression "FUN_0001afec(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;) })) })) (if_statement "if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" if (parenthesized_expression "((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0))" ( (binary_expression "(((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)" (parenthesized_expression "(((uint)ppppppiVar5[0x3e] & 4) == 0)" ( (binary_expression "((uint)ppppppiVar5[0x3e] & 4) == 0" (parenthesized_expression "((uint)ppppppiVar5[0x3e] & 4)" ( (binary_expression "(uint)ppppppiVar5[0x3e] & 4" (cast_expression "(uint)ppppppiVar5[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar5[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppppppiVar5[3] != (int *****)0x0)" ( (binary_expression "ppppppiVar5[3] != (int *****)0x0" (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) (compound_statement "{\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" { (expression_statement "iVar2 = *(int *)(pcVar31 + 0x229fc);" (assignment_expression "iVar2 = *(int *)(pcVar31 + 0x229fc)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x229fc)" * (cast_expression "(int *)(pcVar31 + 0x229fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x229fc)" ( (binary_expression "pcVar31 + 0x229fc" identifier + number_literal) ))))) ;) (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" identifier = (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);" do (compound_statement "{\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    }" { (expression_statement "ppppiVar28 = pppppiVar12[0x29];" (assignment_expression "ppppiVar28 = pppppiVar12[0x29]" identifier = (subscript_expression "pppppiVar12[0x29]" identifier [ number_literal ])) ;) (expression_statement "pppppiVar19 = (int *****)pppppiVar12[3];" (assignment_expression "pppppiVar19 = (int *****)pppppiVar12[3]" identifier = (cast_expression "(int *****)pppppiVar12[3]" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppiVar12[3]" identifier [ number_literal ]))) ;) (if_statement "if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }" if (parenthesized_expression "(ppppiVar28 != (int ****)0xffffffff)" ( (binary_expression "ppppiVar28 != (int ****)0xffffffff" identifier != (cast_expression "(int ****)0xffffffff" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }" { (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar28)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));" (assignment_expression "unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f))" identifier = (cast_expression "(int *******)(1 << ((uint)ppppiVar28 & 0x1f))" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(1 << ((uint)ppppiVar28 & 0x1f))" ( (binary_expression "1 << ((uint)ppppiVar28 & 0x1f)" number_literal << (parenthesized_expression "((uint)ppppiVar28 & 0x1f)" ( (binary_expression "(uint)ppppiVar28 & 0x1f" (cast_expression "(uint)ppppiVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "ppppppiVar10 = pppppppiVar14[iVar20];" (assignment_expression "ppppppiVar10 = pppppppiVar14[iVar20]" identifier = (subscript_expression "pppppppiVar14[iVar20]" identifier [ identifier ])) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar28)" ( identifier )))) ;) (expression_statement "ppppppiVar21 = pppppppiVar16[iVar20];" (assignment_expression "ppppppiVar21 = pppppppiVar16[iVar20]" identifier = (subscript_expression "pppppppiVar16[iVar20]" identifier [ identifier ])) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar28)" ( identifier )))) ;) (expression_statement "(*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);" (call_expression "(*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0)" (parenthesized_expression "(*(code *)(iVar2 + -0x7974))" ( (pointer_expression "*(code *)(iVar2 + -0x7974)" * (cast_expression "(code *)(iVar2 + -0x7974)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x7974)" ( (binary_expression "iVar2 + -0x7974" identifier + number_literal) )))) )) (argument_list "(pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0)" ( identifier , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar10) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar10)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar10" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar21) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar21)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar21" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)pppppppiVar17[iVar20])" ( (binary_expression "(uint)unaff_s7 & (uint)pppppppiVar17[iVar20]" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppiVar17[iVar20]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar17[iVar20]" identifier [ identifier ]))) )) != number_literal) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar19;" (assignment_expression "pppppiVar12 = pppppiVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar19 != (int *****)0x0)" ( (binary_expression "pppppiVar19 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) })) (if_statement "if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" if (parenthesized_expression "(ppppppiVar5[0x42] != (int *****)0x0)" ( (binary_expression "ppppppiVar5[0x42] != (int *****)0x0" (subscript_expression "ppppppiVar5[0x42]" identifier [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" { (expression_statement "unaff_s7 = (int *******)0x1;" (assignment_expression "unaff_s7 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppiVar12 = ppppppiVar5[0x42];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x42]" identifier = (subscript_expression "ppppppiVar5[0x42]" identifier [ number_literal ])) ;) (do_statement "do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);" do (compound_statement "{\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    }" { (expression_statement "pppppiVar19 = (int *****)pppppiVar12[2];" (assignment_expression "pppppiVar19 = (int *****)pppppiVar12[2]" identifier = (cast_expression "(int *****)pppppiVar12[2]" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppiVar12[2]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);" (call_expression "FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17)" identifier (argument_list "(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00018878(pppppiVar12);" (call_expression "FUN_00018878(pppppiVar12)" identifier (argument_list "(pppppiVar12)" ( identifier ))) ;) (if_statement "if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }" if (parenthesized_expression "((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0))" ( (binary_expression "(((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)" (parenthesized_expression "(((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0))" ( (binary_expression "((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)" (parenthesized_expression "((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0))" ( (binary_expression "(pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)" (parenthesized_expression "(pppppiVar12[8] == (int ****)0x0)" ( (binary_expression "pppppiVar12[8] == (int ****)0x0" (subscript_expression "pppppiVar12[8]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) && (parenthesized_expression "(pppppiVar12[9] == (int ****)0x0)" ( (binary_expression "pppppiVar12[9] == (int ****)0x0" (subscript_expression "pppppiVar12[9]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ))) )) && (parenthesized_expression "(pppppiVar12[10] == (int ****)0x0)" ( (binary_expression "pppppiVar12[10] == (int ****)0x0" (subscript_expression "pppppiVar12[10]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ))) )) && (parenthesized_expression "(pppppiVar12[0xb] == (int ****)0x0)" ( (binary_expression "pppppiVar12[0xb] == (int ****)0x0" (subscript_expression "pppppiVar12[0xb]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ))) )) (compound_statement "{\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }" { (expression_statement "FUN_00014600(*pppppiVar12);" (call_expression "FUN_00014600(*pppppiVar12)" identifier (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22bb4);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22bb4)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22bb4)" * (cast_expression "(code **)(pcVar31 + 0x22bb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22bb4)" ( (binary_expression "pcVar31 + 0x22bb4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)pppppiVar12 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)pppppiVar12 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)pppppiVar12 + 0x51)" * (cast_expression "(undefined1 *)((int)pppppiVar12 + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppiVar12 + 0x51)" ( (binary_expression "(int)pppppiVar12 + 0x51" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar32)(*pppppiVar12);" (call_expression "(*pcVar32)(*pppppiVar12)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar19;" (assignment_expression "pppppiVar12 = pppppiVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar19 != (int *****)0x0)" ( (binary_expression "pppppiVar19 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) })) (expression_statement "FUN_0001ab80(ppppppiVar5);" (call_expression "FUN_0001ab80(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;) (if_statement "if (iStack_41c == *piVar4) {\n    return 1;\n  }" if (parenthesized_expression "(iStack_41c == *piVar4)" ( (binary_expression "iStack_41c == *piVar4" identifier == (pointer_expression "*piVar4" * identifier)) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar31 = *(code **)(pcVar31 + 0x22c30);" (assignment_expression "pcVar31 = *(code **)(pcVar31 + 0x22c30)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22c30)" * (cast_expression "(code **)(pcVar31 + 0x22c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c30)" ( (binary_expression "pcVar31 + 0x22c30" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iStack_41c;" (assignment_expression "iVar2 = iStack_41c" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar30 = *(uint *)(iVar2 + 0xf8);" (assignment_expression "uVar30 = *(uint *)(iVar2 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xf8)" * (cast_expression "(uint *)(iVar2 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf8)" ( (binary_expression "iVar2 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar30 & 4;" (assignment_expression "uVar29 = uVar30 & 4" identifier = (binary_expression "uVar30 & 4" identifier & number_literal)) ;) (expression_statement "pppppppiVar25 = (int *******)(uVar30 & 0x8000);" (assignment_expression "pppppppiVar25 = (int *******)(uVar30 & 0x8000)" identifier = (cast_expression "(int *******)(uVar30 & 0x8000)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar30 & 0x8000)" ( (binary_expression "uVar30 & 0x8000" identifier & number_literal) )))) ;) (expression_statement "uVar3 = uVar30;" (assignment_expression "uVar3 = uVar30" identifier = identifier) ;) (if_statement "if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }" if (parenthesized_expression "(*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0)" ( (binary_expression "*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(iVar2 + 0x108)" * (cast_expression "(undefined4 **)(iVar2 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x108)" ( (binary_expression "iVar2 + 0x108" identifier + number_literal) )))) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }" { (expression_statement "unaff_s7 = (int *******)0x1;" (assignment_expression "unaff_s7 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar2 + 0x108);" (assignment_expression "puVar9 = *(undefined4 **)(iVar2 + 0x108)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x108)" * (cast_expression "(undefined4 **)(iVar2 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x108)" ( (binary_expression "iVar2 + 0x108" identifier + number_literal) ))))) ;) (do_statement "do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);" do (compound_statement "{\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    }" { (expression_statement "puVar22 = (undefined4 *)puVar9[2];" (assignment_expression "puVar22 = (undefined4 *)puVar9[2]" identifier = (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00018878(puVar9);" (call_expression "FUN_00018878(puVar9)" identifier (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "FUN_00014600(*puVar9);" (call_expression "FUN_00014600(*puVar9)" identifier (argument_list "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) ))) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)puVar9 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)puVar9 + 0x51)" * (cast_expression "(undefined1 *)((int)puVar9 + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x51)" ( (binary_expression "(int)puVar9 + 0x51" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar31 + 0x22818))(*puVar9);" (call_expression "(**(code **)(pcVar31 + 0x22818))(*puVar9)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22818))" ( (pointer_expression "**(code **)(pcVar31 + 0x22818)" * (pointer_expression "*(code **)(pcVar31 + 0x22818)" * (cast_expression "(code **)(pcVar31 + 0x22818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22818)" ( (binary_expression "pcVar31 + 0x22818" identifier + number_literal) ))))) )) (argument_list "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) ))) ;) (expression_statement "puVar9 = puVar22;" (assignment_expression "puVar9 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pppppppiVar14 = (int *******)0x0;" (assignment_expression "pppppppiVar14 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xf8);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xf8)" * (cast_expression "(uint *)(iVar2 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf8)" ( (binary_expression "iVar2 + 0xf8" identifier + number_literal) ))))) ;) })) (if_statement "if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\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 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }" { (expression_statement "*(undefined1 *)(iVar2 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xe3)" * (cast_expression "(undefined1 *)(iVar2 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe3)" ( (binary_expression "iVar2 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar2);" (call_expression "FUN_00018028(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (expression_statement "iVar23 = iVar2 + 0xac;" (assignment_expression "iVar23 = iVar2 + 0xac" identifier = (binary_expression "iVar2 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22884))(iVar23)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" ( (pointer_expression "**(code **)(pcVar31 + 0x22884)" * (pointer_expression "*(code **)(pcVar31 + 0x22884)" * (cast_expression "(code **)(pcVar31 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22884)" ( (binary_expression "pcVar31 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "uVar15 = 0x191e;" (assignment_expression "uVar15 = 0x191e" identifier = number_literal) ;) (if_statement "if (iVar20 != 0) goto LAB_0001cf0c;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;)) (if_statement "if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;" if (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" ( (binary_expression "pppppppiVar25 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cb94;" goto statement_identifier ;)) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0x14);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *******)(iVar2 + 0x14)" * (cast_expression "(int *******)(iVar2 + 0x14)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cba0;" goto statement_identifier ;)) (expression_statement "pppppiVar12 = ppppppiVar5[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x38]" identifier = (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ])) ;) (expression_statement "uVar30 = uVar30 & 2;" (assignment_expression "uVar30 = uVar30 & 2" identifier = (binary_expression "uVar30 & 2" identifier & number_literal)) ;) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cb6c;" goto statement_identifier ;)) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014)" identifier = (cast_expression "(int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar31 + 0x22638) + -0x4014)" ( (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;" statement_identifier : (if_statement "if (uVar30 == 0) goto LAB_0001cd7c;" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001cd7c;" goto statement_identifier ;))) (if_statement "if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }" { (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;" if (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" ( (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" * (cast_expression "(char *)(pppppiVar12 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppiVar12 + 0x14)" ( (binary_expression "pppppiVar12 + 0x14" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" ( (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001cd9c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" if (parenthesized_expression "(*(char *)((int)pppppiVar12 + 0x51) == '\0')" ( (binary_expression "*(char *)((int)pppppiVar12 + 0x51) == '\0'" (pointer_expression "*(char *)((int)pppppiVar12 + 0x51)" * (cast_expression "(char *)((int)pppppiVar12 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppiVar12 + 0x51)" ( (binary_expression "(int)pppppiVar12 + 0x51" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" { (expression_statement "(**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);" (call_expression "(**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22744))" ( (pointer_expression "**(code **)(pcVar31 + 0x22744)" * (pointer_expression "*(code **)(pcVar31 + 0x22744)" * (cast_expression "(code **)(pcVar31 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22744)" ( (binary_expression "pcVar31 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(pppppiVar12[0xd],2)" ( (subscript_expression "pppppiVar12[0xd]" identifier [ number_literal ]) , number_literal ))) ;) (goto_statement "goto LAB_0001cb54;" goto statement_identifier ;) })) (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;" if (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" ( (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" * (cast_expression "(char *)(pppppiVar12 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppiVar12 + 0x14)" ( (binary_expression "pppppiVar12 + 0x14" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" ( (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;" statement_identifier : (expression_statement "*(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5 + 0x3f)" * (cast_expression "(char *)(ppppppiVar5 + 0x3f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5 + 0x3f)" ( (binary_expression "ppppppiVar5 + 0x3f" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "*(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;" (assignment_expression "*(char *)(iVar2 + 0xe3) = (char)pppppppiVar14" (pointer_expression "*(char *)(iVar2 + 0xe3)" * (cast_expression "(char *)(iVar2 + 0xe3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe3)" ( (binary_expression "iVar2 + 0xe3" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];" statement_identifier : (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;)) (if_statement "if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }" { (expression_statement "pppppiVar12 = ppppppiVar5[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x38]" identifier = (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ])) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cb18;" goto statement_identifier ;)) (labeled_statement "LAB_0001cb6c:\n    uVar15 = 0x1929;" statement_identifier : (expression_statement "uVar15 = 0x1929;" (assignment_expression "uVar15 = 0x1929" identifier = number_literal) ;)) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);" do (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001cb94:\n      uVar15 = 0x1948;" statement_identifier : (expression_statement "uVar15 = 0x1948;" (assignment_expression "uVar15 = 0x1948" identifier = number_literal) ;)) }) while (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) )) ;) })) (labeled_statement "LAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);" statement_identifier : (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }" { (do_statement "do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);" do (compound_statement "{\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    }" { (expression_statement "(**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);" (call_expression "(**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22744))" ( (pointer_expression "**(code **)(pcVar31 + 0x22744)" * (pointer_expression "*(code **)(pcVar31 + 0x22744)" * (cast_expression "(code **)(pcVar31 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22744)" ( (binary_expression "pcVar31 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar5[0x29],2)" ( (subscript_expression "ppppppiVar5[0x29]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar5 = (int ******)0x0;" (assignment_expression "ppppppiVar5 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }" if (parenthesized_expression "((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       )" ( (binary_expression "(uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)" (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) && (parenthesized_expression "(ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)" ( (comma_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) , (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }" { (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);" do (compound_statement "{\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      }" { (while_statement "while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }" while (parenthesized_expression "(pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')" ( (comma_expression "pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) , (binary_expression "*(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar5 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" ( (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }" { (expression_statement "iVar20 = (*pcVar32)(iVar23);" (assignment_expression "iVar20 = (*pcVar32)(iVar23)" identifier = (call_expression "(*pcVar32)(iVar23)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }" { (expression_statement "uVar15 = 0x195e;" (assignment_expression "uVar15 = 0x195e" identifier = number_literal) ;) (goto_statement "goto LAB_0001cd58;" goto statement_identifier ;) })) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2277c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2277c)" * (pointer_expression "*(code **)(pcVar31 + 0x2277c)" * (cast_expression "(code **)(pcVar31 + 0x2277c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2277c)" ( (binary_expression "pcVar31 + 0x2277c" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar5[0x16],0)" ( (subscript_expression "ppppppiVar5[0x16]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar20 != 0) goto LAB_0001cf30;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22884))(iVar23)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" ( (pointer_expression "**(code **)(pcVar31 + 0x22884)" * (pointer_expression "*(code **)(pcVar31 + 0x22884)" * (cast_expression "(code **)(pcVar31 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22884)" ( (binary_expression "pcVar31 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }" { (expression_statement "uVar15 = 0x1961;" (assignment_expression "uVar15 = 0x1961" identifier = number_literal) ;) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1" (pointer_expression "*(undefined1 *)((int)ppppppiVar5 + 0xaa)" * (cast_expression "(undefined1 *)((int)ppppppiVar5 + 0xaa)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" ( (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cc48;" goto statement_identifier ;)) })) (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) })) })) (labeled_statement "LAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);" statement_identifier : (expression_statement "iVar20 = (*pcVar32)(iVar23);" (assignment_expression "iVar20 = (*pcVar32)(iVar23)" identifier = (call_expression "(*pcVar32)(iVar23)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;)) (if_statement "if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }" { (if_statement "if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }" if (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" ( (binary_expression "pppppppiVar25 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }" { (expression_statement "*(undefined1 *)(iVar2 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xe3)" * (cast_expression "(undefined1 *)(iVar2 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe3)" ( (binary_expression "iVar2 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar2);" (call_expression "FUN_00018028(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (do_statement "do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);" do (compound_statement "{\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    }" { (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }" { (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }" { (expression_statement "iVar2 = FUN_0001ab80(iVar2);" (assignment_expression "iVar2 = FUN_0001ab80(iVar2)" identifier = (call_expression "FUN_0001ab80(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;" if (parenthesized_expression "(((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))" ( (binary_expression "((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0')" (parenthesized_expression "((*(uint *)(iVar2 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar2 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar2 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar2 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar2 + 0xf8)" * (cast_expression "(uint *)(iVar2 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf8)" ( (binary_expression "iVar2 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((int)ppppppiVar5 + 0xaa) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar5 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" ( (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "pppppppiVar14 = (int *******)ppppppiVar5[6];" (assignment_expression "pppppppiVar14 = (int *******)ppppppiVar5[6]" identifier = (cast_expression "(int *******)ppppppiVar5[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppiVar5[6]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;" if (parenthesized_expression "(((uint)pppppppiVar14[0x3e] & 4) == 0)" ( (binary_expression "((uint)pppppppiVar14[0x3e] & 4) == 0" (parenthesized_expression "((uint)pppppppiVar14[0x3e] & 4)" ( (binary_expression "(uint)pppppppiVar14[0x3e] & 4" (cast_expression "(uint)pppppppiVar14[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_000140b4(ppppppiVar5);" (call_expression "FUN_000140b4(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pppppppiVar25 = pppppppiVar14 + 0x2b;" (assignment_expression "pppppppiVar25 = pppppppiVar14 + 0x2b" identifier = (binary_expression "pppppppiVar14 + 0x2b" identifier + number_literal)) ;) (expression_statement "FUN_00014148(ppppppiVar5,3);" (call_expression "FUN_00014148(ppppppiVar5,3)" identifier (argument_list "(ppppppiVar5,3)" ( identifier , number_literal ))) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22884))(pppppppiVar25)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" ( (pointer_expression "**(code **)(pcVar31 + 0x22884)" * (pointer_expression "*(code **)(pcVar31 + 0x22884)" * (cast_expression "(code **)(pcVar31 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22884)" ( (binary_expression "pcVar31 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar25)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }" { (do_statement "do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );" do (compound_statement "{\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        }" { (expression_statement "uVar15 = 0x11ca;" (assignment_expression "uVar15 = 0x11ca" identifier = number_literal) ;) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pppppiVar12 = ppppppiVar5[5];" (assignment_expression "pppppiVar12 = ppppppiVar5[5]" identifier = (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[4];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[4]" identifier = (cast_expression "(int ******)ppppppiVar5[4]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ]))) ;) (if_statement "if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" if (parenthesized_expression "((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c])" ( (binary_expression "(int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]" (cast_expression "(int ******)ppppppiVar5[0x26]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[0x26]" identifier [ number_literal ])) == (subscript_expression "pppppppiVar14[0x3c]" identifier [ number_literal ])) )) (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }" { (expression_statement "pppppppiVar14[0xc] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xc] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar5[4];" (assignment_expression "pppppiVar12 = ppppppiVar5[4]" identifier = (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[5];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[5]" identifier = (cast_expression "(int ******)ppppppiVar5[5]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001ccf0;" goto statement_identifier ;)) (expression_statement "pppppppiVar14[0xd] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xd] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xd]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];" statement_identifier : (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" identifier = (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ])) ;)) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[2];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[2]" identifier = (cast_expression "(int ******)ppppppiVar5[2]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "ppppppiVar5[4] = (int *****)0x0;" (assignment_expression "ppppppiVar5[4] = (int *****)0x0" (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[5] = (int *****)0x0;" (assignment_expression "ppppppiVar5[5] = (int *****)0x0" (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cd08;" goto statement_identifier ;)) (labeled_statement "LAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;" statement_identifier : (expression_statement "pppppppiVar14[2] = ppppppiVar10;" (assignment_expression "pppppppiVar14[2] = ppppppiVar10" (subscript_expression "pppppppiVar14[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "pppppiVar12 = ppppppiVar5[2];" (assignment_expression "pppppiVar12 = ppppppiVar5[2]" identifier = (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001ce0c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;" statement_identifier : (expression_statement "pppppiVar12[3] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[3] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[3]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "ppppppiVar5[2] = (int *****)0x0;" (assignment_expression "ppppppiVar5[2] = (int *****)0x0" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[3] = (int *****)0x0;" (assignment_expression "ppppppiVar5[3] = (int *****)0x0" (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar10 = pppppppiVar14[6];" (assignment_expression "ppppppiVar10 = pppppppiVar14[6]" identifier = (subscript_expression "pppppppiVar14[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar5[2] = (int *****)ppppppiVar10;" (assignment_expression "ppppppiVar5[2] = (int *****)ppppppiVar10" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar10" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;" if (parenthesized_expression "(pppppppiVar14[7] != (int ******)0x0)" ( (binary_expression "pppppppiVar14[7] != (int ******)0x0" (subscript_expression "pppppppiVar14[7]" identifier [ number_literal ]) != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cd38;" goto statement_identifier ;)) (labeled_statement "LAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;" statement_identifier : (expression_statement "pppppppiVar14[7] = ppppppiVar5;" (assignment_expression "pppppppiVar14[7] = ppppppiVar5" (subscript_expression "pppppppiVar14[7]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" else (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }" { (expression_statement "pppppppiVar14[0xe] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xe] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xe]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar5[4];" (assignment_expression "pppppiVar12 = ppppppiVar5[4]" identifier = (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[5];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[5]" identifier = (cast_expression "(int ******)ppppppiVar5[5]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }" { (labeled_statement "LAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;" statement_identifier : (expression_statement "pppppiVar12[5] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[5] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[5]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (goto_statement "goto LAB_0001ccf4;" goto statement_identifier ;) })) (expression_statement "pppppppiVar14[0xf] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xf] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar5[4] = (int *****)0x0;" (assignment_expression "ppppppiVar5[4] = (int *****)0x0" (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[5] = (int *****)0x0;" (assignment_expression "ppppppiVar5[5] = (int *****)0x0" (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" identifier = (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[2];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[2]" identifier = (cast_expression "(int ******)ppppppiVar5[2]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cdfc;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;" statement_identifier : (expression_statement "pppppiVar12[2] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[2] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[2]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "pppppiVar12 = ppppppiVar5[2];" (assignment_expression "pppppiVar12 = ppppppiVar5[2]" identifier = (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cd18;" goto statement_identifier ;)) (labeled_statement "LAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;" statement_identifier : (expression_statement "pppppppiVar14[3] = ppppppiVar10;" (assignment_expression "pppppppiVar14[3] = ppppppiVar10" (subscript_expression "pppppppiVar14[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "ppppppiVar5[2] = (int *****)0x0;" (assignment_expression "ppppppiVar5[2] = (int *****)0x0" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[3] = (int *****)0x0;" (assignment_expression "ppppppiVar5[3] = (int *****)0x0" (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar10 = pppppppiVar14[6];" (assignment_expression "ppppppiVar10 = pppppppiVar14[6]" identifier = (subscript_expression "pppppppiVar14[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar5[2] = (int *****)ppppppiVar10;" (assignment_expression "ppppppiVar5[2] = (int *****)ppppppiVar10" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar10" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;" if (parenthesized_expression "(pppppppiVar14[7] == (int ******)0x0)" ( (binary_expression "pppppppiVar14[7] == (int ******)0x0" (subscript_expression "pppppppiVar14[7]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001ce2c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;" statement_identifier : (expression_statement "ppppppiVar10[3] = (int *****)ppppppiVar5;" (assignment_expression "ppppppiVar10[3] = (int *****)ppppppiVar5" (subscript_expression "ppppppiVar10[3]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar5" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;)) }))) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar14[6] = ppppppiVar5;" (assignment_expression "pppppppiVar14[6] = ppppppiVar5" (subscript_expression "pppppppiVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = (*pcVar32)(pppppppiVar25);" (assignment_expression "iVar20 = (*pcVar32)(pppppppiVar25)" identifier = (call_expression "(*pcVar32)(pppppppiVar25)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppppiVar25)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) ;) (expression_statement "uVar15 = 0x11dd;" (assignment_expression "uVar15 = 0x11dd" identifier = number_literal) ;) }) (else_clause "else {\n    uVar15 = 0x196b;\n  }" else (compound_statement "{\n    uVar15 = 0x196b;\n  }" { (expression_statement "uVar15 = 0x196b;" (assignment_expression "uVar15 = 0x196b" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);" statement_identifier : (expression_statement "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);" (assignment_expression "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" identifier = (cast_expression "(int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" statement_identifier : (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" if (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" ( (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" * (cast_expression "(char *)(pppppiVar12 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppiVar12 + 0x14)" ( (binary_expression "pppppiVar12 + 0x14" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" { (labeled_statement "LAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);" statement_identifier : (expression_statement "FUN_00020df0(iVar2,unaff_s7);" (call_expression "FUN_00020df0(iVar2,unaff_s7)" identifier (argument_list "(iVar2,unaff_s7)" ( identifier , identifier ))) ;)) }))) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" ( (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }" { (labeled_statement "LAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);" statement_identifier : (expression_statement "FUN_00014600(ppppppiVar5);" (call_expression "FUN_00014600(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;)) })) (goto_statement "goto LAB_0001cb4c;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */\n/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */\n\nvoid internal_suspend_connection_(MHD_Connection *connection)\n\n{\n  bool write_ready;\n  bool force_close;\n  bool bVar1;\n  undefined *puVar2;\n  undefined3 extraout_var;\n  int iVar3;\n  MHD_Connection *pMVar4;\n  MHD_EpollState MVar5;\n  int *piVar6;\n  void *pvVar7;\n  undefined4 uVar8;\n  MHD_Daemon *pMVar9;\n  time_t tVar10;\n  int *piVar11;\n  size_t *psVar12;\n  MHD_UpgradeResponseHandle **ppMVar13;\n  _Bool _Var18;\n  uint *puVar14;\n  int iVar15;\n  MHD_FLAG MVar16;\n  MHD_UpgradeResponseHandle *pMVar17;\n  uint uVar19;\n  MHD_Daemon *pMVar20;\n  MHD_Daemon *connection_00;\n  uint uVar21;\n  MHD_Connection *pMVar22;\n  MHD_Daemon *p;\n  MHD_Daemon *set;\n  MHD_AccessHandlerCallback p_Var23;\n  MHD_Connection *pMVar24;\n  undefined4 uVar25;\n  MHD_Daemon *pMVar26;\n  MHD_AccessHandlerCallback p_Var27;\n  MHD_Daemon *pMVar28;\n  MHD_Daemon **ppMVar29;\n  MHD_Daemon *pMVar30;\n  MHD_UpgradeResponseHandle *pMVar31;\n  MHD_Daemon *pMVar32;\n  MHD_Daemon *daemon;\n  MHD_Daemon *pMVar33;\n  MHD_mutex_ *pMVar34;\n  MHD_mutex_ *pMVar35;\n  undefined1 *puVar36;\n  MHD_FLAG MVar37;\n  MHD_Daemon *unaff_s6;\n  MHD_FLAG MVar38;\n  MHD_Daemon *unaff_s7;\n  code *pcVar39;\n  code *pcVar40;\n  undefined1 auStackY_428 [12];\n  MHD_Daemon *pMStackY_41c;\n  MHD_Daemon *pMStackY_418;\n  MHD_Daemon *pMStackY_414;\n  MHD_Daemon *pMStackY_410;\n  undefined4 uStackY_40c;\n  size_t *psStackY_408;\n  undefined1 *puStackY_404;\n  MHD_Daemon *pMStackY_400;\n  MHD_Daemon *pMStackY_3fc;\n  MHD_Daemon *pMStackY_3f8;\n  code *pcStackY_3f4;\n  MHD_socket MStack_3c0;\n  MHD_socket MStack_3bc;\n  MHD_Daemon *pMStack_3b8;\n  undefined4 uStack_3b4;\n  undefined1 auStack_3b0 [148];\n  undefined1 auStack_31c [256];\n  MHD_Daemon MStack_21c;\n  MHD_Daemon *pMStack_9c;\n  MHD_Daemon *pMStack_98;\n  MHD_Daemon *pMStack_94;\n  MHD_mutex_ *pMStack_90;\n  \n  pMVar32 = connection->daemon;\n  pMVar34 = &pMVar32->cleanup_connection_mutex;\n  iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34);\n  puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar3 != 0) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (connection->resuming != false) {\n    connection->resuming = false;\n    iVar3 = (*(code *)puVar2)(pMVar34);\n    uVar25 = 0xa8a;\n    if (iVar3 != 0) goto LAB_0001b8ac;\n    return;\n  }\n  if ((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    pMVar4 = connection->prevX;\n    pMVar22 = connection->nextX;\n    if (connection->connection_timeout == pMVar32->connection_timeout) {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }\n    else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }\n  }\n  if (connection->prev == (MHD_Connection *)0x0) {\n    pMVar32->connections_head = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;\nLAB_0001b798:\n    pMVar4->prev = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    pMVar32->suspended_connections_tail = connection;\n  }\n  else {\n    connection->prev->next = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;\nLAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    pMVar4->prev = connection;\n  }\n  pMVar32->suspended_connections_head = connection;\n  connection->suspended = true;\n  if ((pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n    MVar5 = connection->epoll_state;\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;\n    connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;\n  }\n  while( true ) {\n    iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);\n    if (iVar3 == 0) {\n      return;\n    }\nLAB_0001b988:\n    uVar25 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);\n    if (iVar3 != 0) break;\n    connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;\n  }\n  pMVar4 = *(MHD_Connection **)PTR_mhd_panic_cls_0003f068;\n  pcVar39 = *(code **)PTR_mhd_panic_0003f070;\n  (*pcVar39)(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG) {\n    if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }\n    internal_suspend_connection_(pMVar4);\n    return;\n  }\n  pMVar20 = (MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0);\n  pcVar40 = (code *)**(undefined4 **)(pcVar39 + 0x236b8);\n  (*pcVar40)(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,\n             *(int *)(pcVar39 + 0x236a4) + -0x359c);\n  pMVar30 = (MHD_Daemon *)pMVar20->cleanup_head;\n  if ((pMVar30->options & 0x2000) == MHD_NO_FLAG) {\n    (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514);\n    pMVar20 = pMVar32;\n  }\n  else {\n    pMVar34 = &pMVar30->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    pcVar39 = *(code **)(pcVar40 + 0x23904);\n    *(undefined1 *)&pMVar20->port = 1;\n    pMVar30->resuming = true;\n    iVar3 = (*pcVar39)(pMVar34);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n            (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar40 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630);\n  pMVar28 = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0);\n  pcVar39 = (code *)**(undefined4 **)(pcVar40 + 0x23638);\n  p = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0);\n  (*pcVar39)(connection_00,p,0xb01);\n  piVar6 = *(int **)(pcVar39 + 0x23748);\n  puVar36 = auStack_3b0 + 0xc;\n  uVar25 = 0x8000001f;\n  daemon = (MHD_Daemon *)connection_00->cleanup_head;\n  pMStack_9c = (MHD_Daemon *)*piVar6;\n  pMVar33 = (MHD_Daemon *)(daemon->options & MHD_USE_POLL);\n  pMStack_98 = pMVar30;\n  pMStack_94 = pMVar20;\n  pMStack_90 = pMVar34;\n  pvVar7 = (void *)(**(code **)(pcVar39 + 0x23740))();\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  connection_00->uri_log_callback_cls = pvVar7;\n  pMVar20 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974);\n  pMVar32 = (MHD_Daemon *)0x0;\nLAB_0001bc2c:\n  pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown;\n  if (pMVar30 != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }\nLAB_0001bdfc:\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\nLAB_0001bcc4:\n    if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }\n    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }\n    pMVar26 = (MHD_Daemon *)0x8;\n    if ((daemon->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (iVar3 == 0x13) goto LAB_0001bdfc;\n  unaff_s6 = (MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1);\n  unaff_s7 = (MHD_Daemon *)daemon->connection_timeout;\n  if ((unaff_s6 != (MHD_Daemon *)0x0) &&\n     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)) {\n    pMVar4 = (MHD_Connection *)(daemon->itc).fd;\n    pMVar32 = unaff_s6;\n    if (pMVar33 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_3b0._12_4_ = pMVar4;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }\n    else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pMVar32 != (MHD_Daemon *)0x0) {\n    MHD_update_last_activity_((MHD_Connection *)connection_00);\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\n  }\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n  pMVar32 = (MHD_Daemon *)0x0;\n  if ((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))\n  {\n    if (0 < (int)unaff_s7) {\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar29 = (MHD_Daemon **)0x0;\n    if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n    auStack_3b0._16_4_ = (MHD_Connection *)0x0;\n    if (iVar3 == 1) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }\n    else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;\n    if (ppMVar29 == (MHD_Daemon **)0x0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }\n    p = (MHD_Daemon *)0x1;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pMStack_3b8 = (MHD_Daemon *)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  ppMVar29 = &pMStack_3b8;\n  if (pMVar33 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  set = (MHD_Daemon *)(auStack_3b0 + 0x14);\n  unaff_s6 = (MHD_Daemon *)auStack_31c;\n  pMVar26 = set;\n  do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n  } while (unaff_s6 != pMVar26);\n  unaff_s7 = (MHD_Daemon *)(auStack_31c + 0x80);\n  pMVar26 = unaff_s6;\n  do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n    pMVar9 = unaff_s7;\n  } while (unaff_s7 != pMVar26);\n  do {\n    pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;\n  } while (&MStack_21c != pMVar9);\n  MStack_3c0 = -1;\n  if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pMVar28 = (MHD_Daemon *)0x400;\n  iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400);\n  if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar15 = MStack_3c0 + 1;\nLAB_0001be8c:\n  pMVar28 = unaff_s7;\n  iVar3 = (**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6);\n  if (iVar3 < 0) {\n    puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n    pMVar26 = (MHD_Daemon *)*puVar14;\n    p = set;\n    unaff_s6 = pMVar26;\n    if (pMVar26 != (MHD_Daemon *)0x4) {\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar3 = (**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4]);\n  bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0;\n  unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n  iVar3 = (**(code **)(pcVar39 + 0x23708))();\n  write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)) != 0;\n  unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n  iVar3 = (**(code **)(pcVar39 + 0x23708))();\n  force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0;\n  pMVar28 = (MHD_Daemon *)(uint)force_close;\n  p = unaff_s6;\n  pMVar26 = unaff_s7;\n  iVar3 = call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close);\n  if (iVar3 == 0) goto LAB_0001bcc4;\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  if (iVar3 != 0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }\n  pMVar4 = connection_00->cleanup_head;\n  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;\n  uVar21 = pMVar4->suspended_dummy;\n  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;\n  if ((uVar21 & 0x42) == 2) {\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));\n    daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    } while (pMVar30 == (MHD_Daemon *)0x4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n    pMVar26 = pMVar30;\n    MHD_DLOG(daemon,(char *)p);\n  }\n  else if ((uVar21 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }\nLAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);\n  pcVar40 = *(code **)(pcVar39 + 0x23698);\n  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;\n  (*pcVar40)(connection_00);\nLAB_0001bd0c:\n  if (pMStack_9c == (MHD_Daemon *)*piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x23714);\n  pcVar40 = internal_run_from_select;\n  pMVar32 = pMStack_9c;\n  (*pcVar39)();\n  piVar6 = *(int **)(pcVar39 + 0x22c64);\n  iVar3 = (pMVar32->itc).fd;\n  pMStackY_41c = (MHD_Daemon *)*piVar6;\n  pMVar32->data_already_pending = false;\n  pMStackY_418 = pMVar30;\n  pMStackY_414 = daemon;\n  pMStackY_410 = pMVar33;\n  uStackY_40c = uVar25;\n  psStackY_408 = (size_t *)pMVar20;\n  puStackY_404 = puVar36;\n  pMStackY_400 = unaff_s6;\n  pMStackY_3fc = unaff_s7;\n  pMStackY_3f8 = connection_00;\n  pcStackY_3f4 = pcVar40;\n  if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))();\n    uVar21 = (pMVar32->itc).fd;\n    if ((int)uVar21 < 0) {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    if (uVar19 != 0) {\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }\n  }\n  uVar21 = pMVar32->listen_fd;\n  if ((uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n    if ((int)uVar21 < 0) {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar21 != 0) {\n      MHD_accept_connection(pMVar32);\n    }\n  }\n  if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar32->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar39 + 0x229fc);\n    pMVar4 = pMVar32->connections_tail;\n    do {\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    } while (pMVar22 != (MHD_Connection *)0x0);\n  }\n  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n  }\n  MHD_cleanup_connections(pMVar32);\n  if (pMStackY_41c == (MHD_Daemon *)*piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x22c30);\n  pMVar32 = pMStackY_41c;\n  (*pcVar39)();\n  MVar38 = pMVar32->options;\n  MVar37 = MVar38 & MHD_USE_THREAD_PER_CONNECTION;\n  pMVar34 = (MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE);\n  MVar16 = MVar38;\n  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar16 = pMVar32->options;\n  }\n  if ((MVar16 & 0x2000) != MHD_NO_FLAG) {\n    pMVar32->resuming = true;\n    resume_suspended_connections(pMVar32);\n  }\n  pMVar35 = &pMVar32->cleanup_connection_mutex;\n  iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n  uVar25 = 0x191e;\n  if (iVar3 != 0) goto LAB_0001cf0c;\n  if (pMVar34 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;\n  pMVar4 = pMVar32->suspended_connections_tail;\n  if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cba0;\n  pMVar17 = pMVar4->urh;\n  MVar38 = MVar38 & MHD_USE_SSL;\n  if (pMVar17 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;\n  p = (MHD_Daemon *)0x1;\n  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (MVar38 == MHD_NO_FLAG) goto LAB_0001cd7c;\n  if (MVar37 == MHD_NO_FLAG) {\n    if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n    pMVar4->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }\n  if (pMVar17->clean_ready == false) {\n    (**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);\n    goto LAB_0001cb54;\n  }\n  if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n  pMVar4->urh->was_closed = SUB41(p,0);\nLAB_0001cb4c:\n  pMVar4->resuming = SUB41(p,0);\n  pMVar32->resuming = SUB41(p,0);\nLAB_0001cb54:\n  pMVar4 = pMVar4->prev;\n  if (pMVar4 != (MHD_Connection *)0x0) {\n    pMVar17 = pMVar4->urh;\n    if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar25 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);\n  }\nLAB_0001cba0:\n  pMVar4 = pMVar32->connections_tail;\n  pcVar40 = *(code **)(pcVar39 + 0x22918);\n  if (pMVar4 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    } while (pMVar4 != (MHD_Connection *)0x0);\n    pcVar40 = *(code **)(pcVar39 + 0x22918);\n    pMVar4 = (MHD_Connection *)0x0;\n    if ((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar3 = (*pcVar40)(pMVar35);\n  if (iVar3 == 0) {\n    if (pMVar34 != (MHD_mutex_ *)0x0) {\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }\n    do {\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    } while (iVar3 == 0);\n    uVar25 = 0x11dd;\n  }\n  else {\n    uVar25 = 0x196b;\n  }\nLAB_0001cd58:\n  pMVar17 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (pMVar17->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);\n  }\n  pMVar4->urh->was_closed = SUB41(p,0);\n  if (MVar37 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar4);\n  }\n  goto LAB_0001cb4c;\n}\n\n" comment comment comment (function_definition "void internal_suspend_connection_(MHD_Connection *connection)\n\n{\n  bool write_ready;\n  bool force_close;\n  bool bVar1;\n  undefined *puVar2;\n  undefined3 extraout_var;\n  int iVar3;\n  MHD_Connection *pMVar4;\n  MHD_EpollState MVar5;\n  int *piVar6;\n  void *pvVar7;\n  undefined4 uVar8;\n  MHD_Daemon *pMVar9;\n  time_t tVar10;\n  int *piVar11;\n  size_t *psVar12;\n  MHD_UpgradeResponseHandle **ppMVar13;\n  _Bool _Var18;\n  uint *puVar14;\n  int iVar15;\n  MHD_FLAG MVar16;\n  MHD_UpgradeResponseHandle *pMVar17;\n  uint uVar19;\n  MHD_Daemon *pMVar20;\n  MHD_Daemon *connection_00;\n  uint uVar21;\n  MHD_Connection *pMVar22;\n  MHD_Daemon *p;\n  MHD_Daemon *set;\n  MHD_AccessHandlerCallback p_Var23;\n  MHD_Connection *pMVar24;\n  undefined4 uVar25;\n  MHD_Daemon *pMVar26;\n  MHD_AccessHandlerCallback p_Var27;\n  MHD_Daemon *pMVar28;\n  MHD_Daemon **ppMVar29;\n  MHD_Daemon *pMVar30;\n  MHD_UpgradeResponseHandle *pMVar31;\n  MHD_Daemon *pMVar32;\n  MHD_Daemon *daemon;\n  MHD_Daemon *pMVar33;\n  MHD_mutex_ *pMVar34;\n  MHD_mutex_ *pMVar35;\n  undefined1 *puVar36;\n  MHD_FLAG MVar37;\n  MHD_Daemon *unaff_s6;\n  MHD_FLAG MVar38;\n  MHD_Daemon *unaff_s7;\n  code *pcVar39;\n  code *pcVar40;\n  undefined1 auStackY_428 [12];\n  MHD_Daemon *pMStackY_41c;\n  MHD_Daemon *pMStackY_418;\n  MHD_Daemon *pMStackY_414;\n  MHD_Daemon *pMStackY_410;\n  undefined4 uStackY_40c;\n  size_t *psStackY_408;\n  undefined1 *puStackY_404;\n  MHD_Daemon *pMStackY_400;\n  MHD_Daemon *pMStackY_3fc;\n  MHD_Daemon *pMStackY_3f8;\n  code *pcStackY_3f4;\n  MHD_socket MStack_3c0;\n  MHD_socket MStack_3bc;\n  MHD_Daemon *pMStack_3b8;\n  undefined4 uStack_3b4;\n  undefined1 auStack_3b0 [148];\n  undefined1 auStack_31c [256];\n  MHD_Daemon MStack_21c;\n  MHD_Daemon *pMStack_9c;\n  MHD_Daemon *pMStack_98;\n  MHD_Daemon *pMStack_94;\n  MHD_mutex_ *pMStack_90;\n  \n  pMVar32 = connection->daemon;\n  pMVar34 = &pMVar32->cleanup_connection_mutex;\n  iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34);\n  puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar3 != 0) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (connection->resuming != false) {\n    connection->resuming = false;\n    iVar3 = (*(code *)puVar2)(pMVar34);\n    uVar25 = 0xa8a;\n    if (iVar3 != 0) goto LAB_0001b8ac;\n    return;\n  }\n  if ((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    pMVar4 = connection->prevX;\n    pMVar22 = connection->nextX;\n    if (connection->connection_timeout == pMVar32->connection_timeout) {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }\n    else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }\n  }\n  if (connection->prev == (MHD_Connection *)0x0) {\n    pMVar32->connections_head = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;\nLAB_0001b798:\n    pMVar4->prev = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    pMVar32->suspended_connections_tail = connection;\n  }\n  else {\n    connection->prev->next = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;\nLAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    pMVar4->prev = connection;\n  }\n  pMVar32->suspended_connections_head = connection;\n  connection->suspended = true;\n  if ((pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n    MVar5 = connection->epoll_state;\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;\n    connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;\n  }\n  while( true ) {\n    iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);\n    if (iVar3 == 0) {\n      return;\n    }\nLAB_0001b988:\n    uVar25 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);\n    if (iVar3 != 0) break;\n    connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;\n  }\n  pMVar4 = *(MHD_Connection **)PTR_mhd_panic_cls_0003f068;\n  pcVar39 = *(code **)PTR_mhd_panic_0003f070;\n  (*pcVar39)(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG) {\n    if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }\n    internal_suspend_connection_(pMVar4);\n    return;\n  }\n  pMVar20 = (MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0);\n  pcVar40 = (code *)**(undefined4 **)(pcVar39 + 0x236b8);\n  (*pcVar40)(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,\n             *(int *)(pcVar39 + 0x236a4) + -0x359c);\n  pMVar30 = (MHD_Daemon *)pMVar20->cleanup_head;\n  if ((pMVar30->options & 0x2000) == MHD_NO_FLAG) {\n    (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514);\n    pMVar20 = pMVar32;\n  }\n  else {\n    pMVar34 = &pMVar30->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    pcVar39 = *(code **)(pcVar40 + 0x23904);\n    *(undefined1 *)&pMVar20->port = 1;\n    pMVar30->resuming = true;\n    iVar3 = (*pcVar39)(pMVar34);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n            (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar40 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630);\n  pMVar28 = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0);\n  pcVar39 = (code *)**(undefined4 **)(pcVar40 + 0x23638);\n  p = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0);\n  (*pcVar39)(connection_00,p,0xb01);\n  piVar6 = *(int **)(pcVar39 + 0x23748);\n  puVar36 = auStack_3b0 + 0xc;\n  uVar25 = 0x8000001f;\n  daemon = (MHD_Daemon *)connection_00->cleanup_head;\n  pMStack_9c = (MHD_Daemon *)*piVar6;\n  pMVar33 = (MHD_Daemon *)(daemon->options & MHD_USE_POLL);\n  pMStack_98 = pMVar30;\n  pMStack_94 = pMVar20;\n  pMStack_90 = pMVar34;\n  pvVar7 = (void *)(**(code **)(pcVar39 + 0x23740))();\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  connection_00->uri_log_callback_cls = pvVar7;\n  pMVar20 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974);\n  pMVar32 = (MHD_Daemon *)0x0;\nLAB_0001bc2c:\n  pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown;\n  if (pMVar30 != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }\nLAB_0001bdfc:\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\nLAB_0001bcc4:\n    if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }\n    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }\n    pMVar26 = (MHD_Daemon *)0x8;\n    if ((daemon->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (iVar3 == 0x13) goto LAB_0001bdfc;\n  unaff_s6 = (MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1);\n  unaff_s7 = (MHD_Daemon *)daemon->connection_timeout;\n  if ((unaff_s6 != (MHD_Daemon *)0x0) &&\n     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)) {\n    pMVar4 = (MHD_Connection *)(daemon->itc).fd;\n    pMVar32 = unaff_s6;\n    if (pMVar33 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_3b0._12_4_ = pMVar4;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }\n    else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pMVar32 != (MHD_Daemon *)0x0) {\n    MHD_update_last_activity_((MHD_Connection *)connection_00);\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\n  }\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n  pMVar32 = (MHD_Daemon *)0x0;\n  if ((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))\n  {\n    if (0 < (int)unaff_s7) {\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar29 = (MHD_Daemon **)0x0;\n    if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n    auStack_3b0._16_4_ = (MHD_Connection *)0x0;\n    if (iVar3 == 1) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }\n    else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;\n    if (ppMVar29 == (MHD_Daemon **)0x0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }\n    p = (MHD_Daemon *)0x1;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pMStack_3b8 = (MHD_Daemon *)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  ppMVar29 = &pMStack_3b8;\n  if (pMVar33 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  set = (MHD_Daemon *)(auStack_3b0 + 0x14);\n  unaff_s6 = (MHD_Daemon *)auStack_31c;\n  pMVar26 = set;\n  do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n  } while (unaff_s6 != pMVar26);\n  unaff_s7 = (MHD_Daemon *)(auStack_31c + 0x80);\n  pMVar26 = unaff_s6;\n  do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n    pMVar9 = unaff_s7;\n  } while (unaff_s7 != pMVar26);\n  do {\n    pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;\n  } while (&MStack_21c != pMVar9);\n  MStack_3c0 = -1;\n  if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pMVar28 = (MHD_Daemon *)0x400;\n  iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400);\n  if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar15 = MStack_3c0 + 1;\nLAB_0001be8c:\n  pMVar28 = unaff_s7;\n  iVar3 = (**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6);\n  if (iVar3 < 0) {\n    puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n    pMVar26 = (MHD_Daemon *)*puVar14;\n    p = set;\n    unaff_s6 = pMVar26;\n    if (pMVar26 != (MHD_Daemon *)0x4) {\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar3 = (**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4]);\n  bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0;\n  unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n  iVar3 = (**(code **)(pcVar39 + 0x23708))();\n  write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)) != 0;\n  unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n  iVar3 = (**(code **)(pcVar39 + 0x23708))();\n  force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0;\n  pMVar28 = (MHD_Daemon *)(uint)force_close;\n  p = unaff_s6;\n  pMVar26 = unaff_s7;\n  iVar3 = call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close);\n  if (iVar3 == 0) goto LAB_0001bcc4;\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  if (iVar3 != 0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }\n  pMVar4 = connection_00->cleanup_head;\n  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;\n  uVar21 = pMVar4->suspended_dummy;\n  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;\n  if ((uVar21 & 0x42) == 2) {\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));\n    daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    } while (pMVar30 == (MHD_Daemon *)0x4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n    pMVar26 = pMVar30;\n    MHD_DLOG(daemon,(char *)p);\n  }\n  else if ((uVar21 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }\nLAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);\n  pcVar40 = *(code **)(pcVar39 + 0x23698);\n  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;\n  (*pcVar40)(connection_00);\nLAB_0001bd0c:\n  if (pMStack_9c == (MHD_Daemon *)*piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x23714);\n  pcVar40 = internal_run_from_select;\n  pMVar32 = pMStack_9c;\n  (*pcVar39)();\n  piVar6 = *(int **)(pcVar39 + 0x22c64);\n  iVar3 = (pMVar32->itc).fd;\n  pMStackY_41c = (MHD_Daemon *)*piVar6;\n  pMVar32->data_already_pending = false;\n  pMStackY_418 = pMVar30;\n  pMStackY_414 = daemon;\n  pMStackY_410 = pMVar33;\n  uStackY_40c = uVar25;\n  psStackY_408 = (size_t *)pMVar20;\n  puStackY_404 = puVar36;\n  pMStackY_400 = unaff_s6;\n  pMStackY_3fc = unaff_s7;\n  pMStackY_3f8 = connection_00;\n  pcStackY_3f4 = pcVar40;\n  if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))();\n    uVar21 = (pMVar32->itc).fd;\n    if ((int)uVar21 < 0) {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    if (uVar19 != 0) {\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }\n  }\n  uVar21 = pMVar32->listen_fd;\n  if ((uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n    if ((int)uVar21 < 0) {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar21 != 0) {\n      MHD_accept_connection(pMVar32);\n    }\n  }\n  if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar32->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar39 + 0x229fc);\n    pMVar4 = pMVar32->connections_tail;\n    do {\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    } while (pMVar22 != (MHD_Connection *)0x0);\n  }\n  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n  }\n  MHD_cleanup_connections(pMVar32);\n  if (pMStackY_41c == (MHD_Daemon *)*piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x22c30);\n  pMVar32 = pMStackY_41c;\n  (*pcVar39)();\n  MVar38 = pMVar32->options;\n  MVar37 = MVar38 & MHD_USE_THREAD_PER_CONNECTION;\n  pMVar34 = (MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE);\n  MVar16 = MVar38;\n  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar16 = pMVar32->options;\n  }\n  if ((MVar16 & 0x2000) != MHD_NO_FLAG) {\n    pMVar32->resuming = true;\n    resume_suspended_connections(pMVar32);\n  }\n  pMVar35 = &pMVar32->cleanup_connection_mutex;\n  iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n  uVar25 = 0x191e;\n  if (iVar3 != 0) goto LAB_0001cf0c;\n  if (pMVar34 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;\n  pMVar4 = pMVar32->suspended_connections_tail;\n  if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cba0;\n  pMVar17 = pMVar4->urh;\n  MVar38 = MVar38 & MHD_USE_SSL;\n  if (pMVar17 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;\n  p = (MHD_Daemon *)0x1;\n  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (MVar38 == MHD_NO_FLAG) goto LAB_0001cd7c;\n  if (MVar37 == MHD_NO_FLAG) {\n    if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n    pMVar4->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }\n  if (pMVar17->clean_ready == false) {\n    (**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);\n    goto LAB_0001cb54;\n  }\n  if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n  pMVar4->urh->was_closed = SUB41(p,0);\nLAB_0001cb4c:\n  pMVar4->resuming = SUB41(p,0);\n  pMVar32->resuming = SUB41(p,0);\nLAB_0001cb54:\n  pMVar4 = pMVar4->prev;\n  if (pMVar4 != (MHD_Connection *)0x0) {\n    pMVar17 = pMVar4->urh;\n    if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar25 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);\n  }\nLAB_0001cba0:\n  pMVar4 = pMVar32->connections_tail;\n  pcVar40 = *(code **)(pcVar39 + 0x22918);\n  if (pMVar4 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    } while (pMVar4 != (MHD_Connection *)0x0);\n    pcVar40 = *(code **)(pcVar39 + 0x22918);\n    pMVar4 = (MHD_Connection *)0x0;\n    if ((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar3 = (*pcVar40)(pMVar35);\n  if (iVar3 == 0) {\n    if (pMVar34 != (MHD_mutex_ *)0x0) {\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }\n    do {\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    } while (iVar3 == 0);\n    uVar25 = 0x11dd;\n  }\n  else {\n    uVar25 = 0x196b;\n  }\nLAB_0001cd58:\n  pMVar17 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (pMVar17->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);\n  }\n  pMVar4->urh->was_closed = SUB41(p,0);\n  if (MVar37 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar4);\n  }\n  goto LAB_0001cb4c;\n}" primitive_type (function_declarator "internal_suspend_connection_(MHD_Connection *connection)" identifier (parameter_list "(MHD_Connection *connection)" ( (parameter_declaration "MHD_Connection *connection" type_identifier (pointer_declarator "*connection" * identifier)) ))) (compound_statement "{\n  bool write_ready;\n  bool force_close;\n  bool bVar1;\n  undefined *puVar2;\n  undefined3 extraout_var;\n  int iVar3;\n  MHD_Connection *pMVar4;\n  MHD_EpollState MVar5;\n  int *piVar6;\n  void *pvVar7;\n  undefined4 uVar8;\n  MHD_Daemon *pMVar9;\n  time_t tVar10;\n  int *piVar11;\n  size_t *psVar12;\n  MHD_UpgradeResponseHandle **ppMVar13;\n  _Bool _Var18;\n  uint *puVar14;\n  int iVar15;\n  MHD_FLAG MVar16;\n  MHD_UpgradeResponseHandle *pMVar17;\n  uint uVar19;\n  MHD_Daemon *pMVar20;\n  MHD_Daemon *connection_00;\n  uint uVar21;\n  MHD_Connection *pMVar22;\n  MHD_Daemon *p;\n  MHD_Daemon *set;\n  MHD_AccessHandlerCallback p_Var23;\n  MHD_Connection *pMVar24;\n  undefined4 uVar25;\n  MHD_Daemon *pMVar26;\n  MHD_AccessHandlerCallback p_Var27;\n  MHD_Daemon *pMVar28;\n  MHD_Daemon **ppMVar29;\n  MHD_Daemon *pMVar30;\n  MHD_UpgradeResponseHandle *pMVar31;\n  MHD_Daemon *pMVar32;\n  MHD_Daemon *daemon;\n  MHD_Daemon *pMVar33;\n  MHD_mutex_ *pMVar34;\n  MHD_mutex_ *pMVar35;\n  undefined1 *puVar36;\n  MHD_FLAG MVar37;\n  MHD_Daemon *unaff_s6;\n  MHD_FLAG MVar38;\n  MHD_Daemon *unaff_s7;\n  code *pcVar39;\n  code *pcVar40;\n  undefined1 auStackY_428 [12];\n  MHD_Daemon *pMStackY_41c;\n  MHD_Daemon *pMStackY_418;\n  MHD_Daemon *pMStackY_414;\n  MHD_Daemon *pMStackY_410;\n  undefined4 uStackY_40c;\n  size_t *psStackY_408;\n  undefined1 *puStackY_404;\n  MHD_Daemon *pMStackY_400;\n  MHD_Daemon *pMStackY_3fc;\n  MHD_Daemon *pMStackY_3f8;\n  code *pcStackY_3f4;\n  MHD_socket MStack_3c0;\n  MHD_socket MStack_3bc;\n  MHD_Daemon *pMStack_3b8;\n  undefined4 uStack_3b4;\n  undefined1 auStack_3b0 [148];\n  undefined1 auStack_31c [256];\n  MHD_Daemon MStack_21c;\n  MHD_Daemon *pMStack_9c;\n  MHD_Daemon *pMStack_98;\n  MHD_Daemon *pMStack_94;\n  MHD_mutex_ *pMStack_90;\n  \n  pMVar32 = connection->daemon;\n  pMVar34 = &pMVar32->cleanup_connection_mutex;\n  iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34);\n  puVar2 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar3 != 0) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (connection->resuming != false) {\n    connection->resuming = false;\n    iVar3 = (*(code *)puVar2)(pMVar34);\n    uVar25 = 0xa8a;\n    if (iVar3 != 0) goto LAB_0001b8ac;\n    return;\n  }\n  if ((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    pMVar4 = connection->prevX;\n    pMVar22 = connection->nextX;\n    if (connection->connection_timeout == pMVar32->connection_timeout) {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }\n    else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }\n  }\n  if (connection->prev == (MHD_Connection *)0x0) {\n    pMVar32->connections_head = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;\nLAB_0001b798:\n    pMVar4->prev = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    pMVar32->suspended_connections_tail = connection;\n  }\n  else {\n    connection->prev->next = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;\nLAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    pMVar4->prev = connection;\n  }\n  pMVar32->suspended_connections_head = connection;\n  connection->suspended = true;\n  if ((pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n    MVar5 = connection->epoll_state;\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;\n    connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;\n  }\n  while( true ) {\n    iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);\n    if (iVar3 == 0) {\n      return;\n    }\nLAB_0001b988:\n    uVar25 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);\n    if (iVar3 != 0) break;\n    connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;\n  }\n  pMVar4 = *(MHD_Connection **)PTR_mhd_panic_cls_0003f068;\n  pcVar39 = *(code **)PTR_mhd_panic_0003f070;\n  (*pcVar39)(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG) {\n    if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }\n    internal_suspend_connection_(pMVar4);\n    return;\n  }\n  pMVar20 = (MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0);\n  pcVar40 = (code *)**(undefined4 **)(pcVar39 + 0x236b8);\n  (*pcVar40)(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,\n             *(int *)(pcVar39 + 0x236a4) + -0x359c);\n  pMVar30 = (MHD_Daemon *)pMVar20->cleanup_head;\n  if ((pMVar30->options & 0x2000) == MHD_NO_FLAG) {\n    (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514);\n    pMVar20 = pMVar32;\n  }\n  else {\n    pMVar34 = &pMVar30->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    pcVar39 = *(code **)(pcVar40 + 0x23904);\n    *(undefined1 *)&pMVar20->port = 1;\n    pMVar30->resuming = true;\n    iVar3 = (*pcVar39)(pMVar34);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n            (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar40 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630);\n  pMVar28 = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0);\n  pcVar39 = (code *)**(undefined4 **)(pcVar40 + 0x23638);\n  p = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0);\n  (*pcVar39)(connection_00,p,0xb01);\n  piVar6 = *(int **)(pcVar39 + 0x23748);\n  puVar36 = auStack_3b0 + 0xc;\n  uVar25 = 0x8000001f;\n  daemon = (MHD_Daemon *)connection_00->cleanup_head;\n  pMStack_9c = (MHD_Daemon *)*piVar6;\n  pMVar33 = (MHD_Daemon *)(daemon->options & MHD_USE_POLL);\n  pMStack_98 = pMVar30;\n  pMStack_94 = pMVar20;\n  pMStack_90 = pMVar34;\n  pvVar7 = (void *)(**(code **)(pcVar39 + 0x23740))();\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  connection_00->uri_log_callback_cls = pvVar7;\n  pMVar20 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974);\n  pMVar32 = (MHD_Daemon *)0x0;\nLAB_0001bc2c:\n  pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown;\n  if (pMVar30 != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }\nLAB_0001bdfc:\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\nLAB_0001bcc4:\n    if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }\n    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }\n    pMVar26 = (MHD_Daemon *)0x8;\n    if ((daemon->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (iVar3 == 0x13) goto LAB_0001bdfc;\n  unaff_s6 = (MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1);\n  unaff_s7 = (MHD_Daemon *)daemon->connection_timeout;\n  if ((unaff_s6 != (MHD_Daemon *)0x0) &&\n     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)) {\n    pMVar4 = (MHD_Connection *)(daemon->itc).fd;\n    pMVar32 = unaff_s6;\n    if (pMVar33 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_3b0._12_4_ = pMVar4;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }\n    else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pMVar32 != (MHD_Daemon *)0x0) {\n    MHD_update_last_activity_((MHD_Connection *)connection_00);\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\n  }\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n  pMVar32 = (MHD_Daemon *)0x0;\n  if ((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))\n  {\n    if (0 < (int)unaff_s7) {\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar29 = (MHD_Daemon **)0x0;\n    if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n    auStack_3b0._16_4_ = (MHD_Connection *)0x0;\n    if (iVar3 == 1) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }\n    else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;\n    if (ppMVar29 == (MHD_Daemon **)0x0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }\n    p = (MHD_Daemon *)0x1;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pMStack_3b8 = (MHD_Daemon *)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  ppMVar29 = &pMStack_3b8;\n  if (pMVar33 != (MHD_Daemon *)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  set = (MHD_Daemon *)(auStack_3b0 + 0x14);\n  unaff_s6 = (MHD_Daemon *)auStack_31c;\n  pMVar26 = set;\n  do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n  } while (unaff_s6 != pMVar26);\n  unaff_s7 = (MHD_Daemon *)(auStack_31c + 0x80);\n  pMVar26 = unaff_s6;\n  do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n    pMVar9 = unaff_s7;\n  } while (unaff_s7 != pMVar26);\n  do {\n    pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;\n  } while (&MStack_21c != pMVar9);\n  MStack_3c0 = -1;\n  if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pMVar28 = (MHD_Daemon *)0x400;\n  iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400);\n  if (iVar3 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar15 = MStack_3c0 + 1;\nLAB_0001be8c:\n  pMVar28 = unaff_s7;\n  iVar3 = (**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6);\n  if (iVar3 < 0) {\n    puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n    pMVar26 = (MHD_Daemon *)*puVar14;\n    p = set;\n    unaff_s6 = pMVar26;\n    if (pMVar26 != (MHD_Daemon *)0x4) {\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar3 = (**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4]);\n  bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0;\n  unaff_s6 = (MHD_Daemon *)(uint)bVar1;\n  iVar3 = (**(code **)(pcVar39 + 0x23708))();\n  write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)) != 0;\n  unaff_s7 = (MHD_Daemon *)(uint)write_ready;\n  iVar3 = (**(code **)(pcVar39 + 0x23708))();\n  force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0;\n  pMVar28 = (MHD_Daemon *)(uint)force_close;\n  p = unaff_s6;\n  pMVar26 = unaff_s7;\n  iVar3 = call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close);\n  if (iVar3 == 0) goto LAB_0001bcc4;\n  iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n  if (iVar3 != 0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }\n  pMVar4 = connection_00->cleanup_head;\n  *(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;\n  uVar21 = pMVar4->suspended_dummy;\n  unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;\n  if ((uVar21 & 0x42) == 2) {\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));\n    daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    } while (pMVar30 == (MHD_Daemon *)0x4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n    pMVar26 = pMVar30;\n    MHD_DLOG(daemon,(char *)p);\n  }\n  else if ((uVar21 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }\nLAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);\n  pcVar40 = *(code **)(pcVar39 + 0x23698);\n  *(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;\n  (*pcVar40)(connection_00);\nLAB_0001bd0c:\n  if (pMStack_9c == (MHD_Daemon *)*piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x23714);\n  pcVar40 = internal_run_from_select;\n  pMVar32 = pMStack_9c;\n  (*pcVar39)();\n  piVar6 = *(int **)(pcVar39 + 0x22c64);\n  iVar3 = (pMVar32->itc).fd;\n  pMStackY_41c = (MHD_Daemon *)*piVar6;\n  pMVar32->data_already_pending = false;\n  pMStackY_418 = pMVar30;\n  pMStackY_414 = daemon;\n  pMStackY_410 = pMVar33;\n  uStackY_40c = uVar25;\n  psStackY_408 = (size_t *)pMVar20;\n  puStackY_404 = puVar36;\n  pMStackY_400 = unaff_s6;\n  pMStackY_3fc = unaff_s7;\n  pMStackY_3f8 = connection_00;\n  pcStackY_3f4 = pcVar40;\n  if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))();\n    uVar21 = (pMVar32->itc).fd;\n    if ((int)uVar21 < 0) {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    if (uVar19 != 0) {\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }\n  }\n  uVar21 = pMVar32->listen_fd;\n  if ((uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n    if ((int)uVar21 < 0) {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar21 != 0) {\n      MHD_accept_connection(pMVar32);\n    }\n  }\n  if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar32->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar39 + 0x229fc);\n    pMVar4 = pMVar32->connections_tail;\n    do {\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    } while (pMVar22 != (MHD_Connection *)0x0);\n  }\n  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n  }\n  MHD_cleanup_connections(pMVar32);\n  if (pMStackY_41c == (MHD_Daemon *)*piVar6) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x22c30);\n  pMVar32 = pMStackY_41c;\n  (*pcVar39)();\n  MVar38 = pMVar32->options;\n  MVar37 = MVar38 & MHD_USE_THREAD_PER_CONNECTION;\n  pMVar34 = (MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE);\n  MVar16 = MVar38;\n  if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar16 = pMVar32->options;\n  }\n  if ((MVar16 & 0x2000) != MHD_NO_FLAG) {\n    pMVar32->resuming = true;\n    resume_suspended_connections(pMVar32);\n  }\n  pMVar35 = &pMVar32->cleanup_connection_mutex;\n  iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n  uVar25 = 0x191e;\n  if (iVar3 != 0) goto LAB_0001cf0c;\n  if (pMVar34 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;\n  pMVar4 = pMVar32->suspended_connections_tail;\n  if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cba0;\n  pMVar17 = pMVar4->urh;\n  MVar38 = MVar38 & MHD_USE_SSL;\n  if (pMVar17 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;\n  p = (MHD_Daemon *)0x1;\n  unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (MVar38 == MHD_NO_FLAG) goto LAB_0001cd7c;\n  if (MVar37 == MHD_NO_FLAG) {\n    if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n    pMVar4->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }\n  if (pMVar17->clean_ready == false) {\n    (**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);\n    goto LAB_0001cb54;\n  }\n  if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n  pMVar4->urh->was_closed = SUB41(p,0);\nLAB_0001cb4c:\n  pMVar4->resuming = SUB41(p,0);\n  pMVar32->resuming = SUB41(p,0);\nLAB_0001cb54:\n  pMVar4 = pMVar4->prev;\n  if (pMVar4 != (MHD_Connection *)0x0) {\n    pMVar17 = pMVar4->urh;\n    if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar25 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);\n  }\nLAB_0001cba0:\n  pMVar4 = pMVar32->connections_tail;\n  pcVar40 = *(code **)(pcVar39 + 0x22918);\n  if (pMVar4 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    } while (pMVar4 != (MHD_Connection *)0x0);\n    pcVar40 = *(code **)(pcVar39 + 0x22918);\n    pMVar4 = (MHD_Connection *)0x0;\n    if ((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar3 = (*pcVar40)(pMVar35);\n  if (iVar3 == 0) {\n    if (pMVar34 != (MHD_mutex_ *)0x0) {\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }\n    do {\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    } while (iVar3 == 0);\n    uVar25 = 0x11dd;\n  }\n  else {\n    uVar25 = 0x196b;\n  }\nLAB_0001cd58:\n  pMVar17 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (pMVar17->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);\n  }\n  pMVar4->urh->was_closed = SUB41(p,0);\n  if (MVar37 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar4);\n  }\n  goto LAB_0001cb4c;\n}" { (declaration "bool write_ready;" primitive_type identifier ;) (declaration "bool force_close;" primitive_type identifier ;) (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "MHD_Connection *pMVar4;" type_identifier (pointer_declarator "*pMVar4" * identifier) ;) (declaration "MHD_EpollState MVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar9;" type_identifier (pointer_declarator "*pMVar9" * identifier) ;) (declaration "time_t tVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "size_t *psVar12;" primitive_type (pointer_declarator "*psVar12" * identifier) ;) (declaration "MHD_UpgradeResponseHandle **ppMVar13;" type_identifier (pointer_declarator "**ppMVar13" * (pointer_declarator "*ppMVar13" * identifier)) ;) (declaration "_Bool _Var18;" type_identifier identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "MHD_FLAG MVar16;" type_identifier identifier ;) (declaration "MHD_UpgradeResponseHandle *pMVar17;" type_identifier (pointer_declarator "*pMVar17" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar20;" type_identifier (pointer_declarator "*pMVar20" * identifier) ;) (declaration "MHD_Daemon *connection_00;" type_identifier (pointer_declarator "*connection_00" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar22;" type_identifier (pointer_declarator "*pMVar22" * identifier) ;) (declaration "MHD_Daemon *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "MHD_Daemon *set;" type_identifier (pointer_declarator "*set" * identifier) ;) (declaration "MHD_AccessHandlerCallback p_Var23;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar24;" type_identifier (pointer_declarator "*pMVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar26;" type_identifier (pointer_declarator "*pMVar26" * identifier) ;) (declaration "MHD_AccessHandlerCallback p_Var27;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar28;" type_identifier (pointer_declarator "*pMVar28" * identifier) ;) (declaration "MHD_Daemon **ppMVar29;" type_identifier (pointer_declarator "**ppMVar29" * (pointer_declarator "*ppMVar29" * identifier)) ;) (declaration "MHD_Daemon *pMVar30;" type_identifier (pointer_declarator "*pMVar30" * identifier) ;) (declaration "MHD_UpgradeResponseHandle *pMVar31;" type_identifier (pointer_declarator "*pMVar31" * identifier) ;) (declaration "MHD_Daemon *pMVar32;" type_identifier (pointer_declarator "*pMVar32" * identifier) ;) (declaration "MHD_Daemon *daemon;" type_identifier (pointer_declarator "*daemon" * identifier) ;) (declaration "MHD_Daemon *pMVar33;" type_identifier (pointer_declarator "*pMVar33" * identifier) ;) (declaration "MHD_mutex_ *pMVar34;" type_identifier (pointer_declarator "*pMVar34" * identifier) ;) (declaration "MHD_mutex_ *pMVar35;" type_identifier (pointer_declarator "*pMVar35" * identifier) ;) (declaration "undefined1 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "MHD_FLAG MVar37;" type_identifier identifier ;) (declaration "MHD_Daemon *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "MHD_FLAG MVar38;" type_identifier identifier ;) (declaration "MHD_Daemon *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "undefined1 auStackY_428 [12];" type_identifier (array_declarator "auStackY_428 [12]" identifier [ number_literal ]) ;) (declaration "MHD_Daemon *pMStackY_41c;" type_identifier (pointer_declarator "*pMStackY_41c" * identifier) ;) (declaration "MHD_Daemon *pMStackY_418;" type_identifier (pointer_declarator "*pMStackY_418" * identifier) ;) (declaration "MHD_Daemon *pMStackY_414;" type_identifier (pointer_declarator "*pMStackY_414" * identifier) ;) (declaration "MHD_Daemon *pMStackY_410;" type_identifier (pointer_declarator "*pMStackY_410" * identifier) ;) (declaration "undefined4 uStackY_40c;" type_identifier identifier ;) (declaration "size_t *psStackY_408;" primitive_type (pointer_declarator "*psStackY_408" * identifier) ;) (declaration "undefined1 *puStackY_404;" type_identifier (pointer_declarator "*puStackY_404" * identifier) ;) (declaration "MHD_Daemon *pMStackY_400;" type_identifier (pointer_declarator "*pMStackY_400" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3fc;" type_identifier (pointer_declarator "*pMStackY_3fc" * identifier) ;) (declaration "MHD_Daemon *pMStackY_3f8;" type_identifier (pointer_declarator "*pMStackY_3f8" * identifier) ;) (declaration "code *pcStackY_3f4;" type_identifier (pointer_declarator "*pcStackY_3f4" * identifier) ;) (declaration "MHD_socket MStack_3c0;" type_identifier identifier ;) (declaration "MHD_socket MStack_3bc;" type_identifier identifier ;) (declaration "MHD_Daemon *pMStack_3b8;" type_identifier (pointer_declarator "*pMStack_3b8" * identifier) ;) (declaration "undefined4 uStack_3b4;" type_identifier identifier ;) (declaration "undefined1 auStack_3b0 [148];" type_identifier (array_declarator "auStack_3b0 [148]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_31c [256];" type_identifier (array_declarator "auStack_31c [256]" identifier [ number_literal ]) ;) (declaration "MHD_Daemon MStack_21c;" type_identifier identifier ;) (declaration "MHD_Daemon *pMStack_9c;" type_identifier (pointer_declarator "*pMStack_9c" * identifier) ;) (declaration "MHD_Daemon *pMStack_98;" type_identifier (pointer_declarator "*pMStack_98" * identifier) ;) (declaration "MHD_Daemon *pMStack_94;" type_identifier (pointer_declarator "*pMStack_94" * identifier) ;) (declaration "MHD_mutex_ *pMStack_90;" type_identifier (pointer_declarator "*pMStack_90" * identifier) ;) (expression_statement "pMVar32 = connection->daemon;" (assignment_expression "pMVar32 = connection->daemon" identifier = (field_expression "connection->daemon" identifier -> field_identifier)) ;) (expression_statement "pMVar34 = &pMVar32->cleanup_connection_mutex;" (assignment_expression "pMVar34 = &pMVar32->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar32->cleanup_connection_mutex" & (field_expression "pMVar32->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar34)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar34)" ( identifier )))) ;) (expression_statement "puVar2 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar2 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" { (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003f070)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003f070" * (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003f068" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001b988;" goto statement_identifier ;) })) (if_statement "if (connection->resuming != false) {\n    connection->resuming = false;\n    iVar3 = (*(code *)puVar2)(pMVar34);\n    uVar25 = 0xa8a;\n    if (iVar3 != 0) goto LAB_0001b8ac;\n    return;\n  }" if (parenthesized_expression "(connection->resuming != false)" ( (binary_expression "connection->resuming != false" (field_expression "connection->resuming" identifier -> field_identifier) != false) )) (compound_statement "{\n    connection->resuming = false;\n    iVar3 = (*(code *)puVar2)(pMVar34);\n    uVar25 = 0xa8a;\n    if (iVar3 != 0) goto LAB_0001b8ac;\n    return;\n  }" { (expression_statement "connection->resuming = false;" (assignment_expression "connection->resuming = false" (field_expression "connection->resuming" identifier -> field_identifier) = false) ;) (expression_statement "iVar3 = (*(code *)puVar2)(pMVar34);" (assignment_expression "iVar3 = (*(code *)puVar2)(pMVar34)" identifier = (call_expression "(*(code *)puVar2)(pMVar34)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar34)" ( identifier )))) ;) (expression_statement "uVar25 = 0xa8a;" (assignment_expression "uVar25 = 0xa8a" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001b8ac;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b8ac;" goto statement_identifier ;)) (return_statement "return;" return ;) })) (if_statement "if ((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n    pMVar4 = connection->prevX;\n    pMVar22 = connection->nextX;\n    if (connection->connection_timeout == pMVar32->connection_timeout) {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }\n    else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }\n  }" if (parenthesized_expression "((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(pMVar32->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar32->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar32->options" identifier -> field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n    pMVar4 = connection->prevX;\n    pMVar22 = connection->nextX;\n    if (connection->connection_timeout == pMVar32->connection_timeout) {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }\n    else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }\n  }" { (expression_statement "pMVar4 = connection->prevX;" (assignment_expression "pMVar4 = connection->prevX" identifier = (field_expression "connection->prevX" identifier -> field_identifier)) ;) (expression_statement "pMVar22 = connection->nextX;" (assignment_expression "pMVar22 = connection->nextX" identifier = (field_expression "connection->nextX" identifier -> field_identifier)) ;) (if_statement "if (connection->connection_timeout == pMVar32->connection_timeout) {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }\n    else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }" if (parenthesized_expression "(connection->connection_timeout == pMVar32->connection_timeout)" ( (binary_expression "connection->connection_timeout == pMVar32->connection_timeout" (field_expression "connection->connection_timeout" identifier -> field_identifier) == (field_expression "pMVar32->connection_timeout" identifier -> field_identifier)) )) (compound_statement "{\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;\n      pMVar32->normal_timeout_tail = pMVar22;\n      connection->nextX = (MHD_Connection *)0x0;\n      connection->prevX = (MHD_Connection *)0x0;\n    }" { (if_statement "if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->normal_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar32->normal_timeout_head = pMVar22;\n      }" { (expression_statement "pMVar32->normal_timeout_head = pMVar22;" (assignment_expression "pMVar32->normal_timeout_head = pMVar22" (field_expression "pMVar32->normal_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        pMVar4->nextX = pMVar22;\n      }" else (compound_statement "{\n        pMVar4->nextX = pMVar22;\n      }" { (expression_statement "pMVar4->nextX = pMVar22;" (assignment_expression "pMVar4->nextX = pMVar22" (field_expression "pMVar4->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar4 = connection->nextX;" (assignment_expression "pMVar4 = connection->nextX" identifier = (field_expression "connection->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar22 = connection->prevX;" (assignment_expression "pMVar22 = connection->prevX" identifier = (field_expression "connection->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b770;" if (parenthesized_expression "(pMVar4 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001b770;" goto statement_identifier ;)) (expression_statement "pMVar32->normal_timeout_tail = pMVar22;" (assignment_expression "pMVar32->normal_timeout_tail = pMVar22" (field_expression "pMVar32->normal_timeout_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "connection->nextX = (MHD_Connection *)0x0;" (assignment_expression "connection->nextX = (MHD_Connection *)0x0" (field_expression "connection->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connection->prevX = (MHD_Connection *)0x0;" (assignment_expression "connection->prevX = (MHD_Connection *)0x0" (field_expression "connection->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }" else (compound_statement "{\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }\n      pMVar4 = connection->nextX;\n      pMVar22 = connection->prevX;\n      if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n    }" { (if_statement "if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_head = pMVar22;\n      }\n      else {\n        pMVar4->nextX = pMVar22;\n      }" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar32->manual_timeout_head = pMVar22;\n      }" { (expression_statement "pMVar32->manual_timeout_head = pMVar22;" (assignment_expression "pMVar32->manual_timeout_head = pMVar22" (field_expression "pMVar32->manual_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        pMVar4->nextX = pMVar22;\n      }" else (compound_statement "{\n        pMVar4->nextX = pMVar22;\n      }" { (expression_statement "pMVar4->nextX = pMVar22;" (assignment_expression "pMVar4->nextX = pMVar22" (field_expression "pMVar4->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar4 = connection->nextX;" (assignment_expression "pMVar4 = connection->nextX" identifier = (field_expression "connection->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar22 = connection->prevX;" (assignment_expression "pMVar22 = connection->prevX" identifier = (field_expression "connection->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar4 == (MHD_Connection *)0x0) {\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }\n      else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar32->manual_timeout_tail = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }" { (expression_statement "pMVar32->manual_timeout_tail = pMVar22;" (assignment_expression "pMVar32->manual_timeout_tail = pMVar22" (field_expression "pMVar32->manual_timeout_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "connection->nextX = (MHD_Connection *)0x0;" (assignment_expression "connection->nextX = (MHD_Connection *)0x0" (field_expression "connection->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connection->prevX = (MHD_Connection *)0x0;" (assignment_expression "connection->prevX = (MHD_Connection *)0x0" (field_expression "connection->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }" else (compound_statement "{\nLAB_0001b770:\n        pMVar4->prevX = pMVar22;\n        connection->nextX = (MHD_Connection *)0x0;\n        connection->prevX = (MHD_Connection *)0x0;\n      }" { (labeled_statement "LAB_0001b770:\n        pMVar4->prevX = pMVar22;" statement_identifier : (expression_statement "pMVar4->prevX = pMVar22;" (assignment_expression "pMVar4->prevX = pMVar22" (field_expression "pMVar4->prevX" identifier -> field_identifier) = identifier) ;)) (expression_statement "connection->nextX = (MHD_Connection *)0x0;" (assignment_expression "connection->nextX = (MHD_Connection *)0x0" (field_expression "connection->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connection->prevX = (MHD_Connection *)0x0;" (assignment_expression "connection->prevX = (MHD_Connection *)0x0" (field_expression "connection->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) })) (if_statement "if (connection->prev == (MHD_Connection *)0x0) {\n    pMVar32->connections_head = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;\nLAB_0001b798:\n    pMVar4->prev = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    pMVar32->suspended_connections_tail = connection;\n  }\n  else {\n    connection->prev->next = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;\nLAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    pMVar4->prev = connection;\n  }" if (parenthesized_expression "(connection->prev == (MHD_Connection *)0x0)" ( (binary_expression "connection->prev == (MHD_Connection *)0x0" (field_expression "connection->prev" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pMVar32->connections_head = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;\nLAB_0001b798:\n    pMVar4->prev = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    pMVar32->suspended_connections_tail = connection;\n  }" { (expression_statement "pMVar32->connections_head = connection->next;" (assignment_expression "pMVar32->connections_head = connection->next" (field_expression "pMVar32->connections_head" identifier -> field_identifier) = (field_expression "connection->next" identifier -> field_identifier)) ;) (expression_statement "pMVar4 = connection->next;" (assignment_expression "pMVar4 = connection->next" identifier = (field_expression "connection->next" identifier -> field_identifier)) ;) (expression_statement "pMVar22 = connection->prev;" (assignment_expression "pMVar22 = connection->prev" identifier = (field_expression "connection->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001b86c;" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001b86c;" goto statement_identifier ;)) (labeled_statement "LAB_0001b798:\n    pMVar4->prev = pMVar22;" statement_identifier : (expression_statement "pMVar4->prev = pMVar22;" (assignment_expression "pMVar4->prev = pMVar22" (field_expression "pMVar4->prev" identifier -> field_identifier) = identifier) ;)) (expression_statement "connection->next = (MHD_Connection *)0x0;" (assignment_expression "connection->next = (MHD_Connection *)0x0" (field_expression "connection->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connection->prev = (MHD_Connection *)0x0;" (assignment_expression "connection->prev = (MHD_Connection *)0x0" (field_expression "connection->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar4 = pMVar32->suspended_connections_head;" (assignment_expression "pMVar4 = pMVar32->suspended_connections_head" identifier = (field_expression "pMVar32->suspended_connections_head" identifier -> field_identifier)) ;) (expression_statement "connection->next = pMVar4;" (assignment_expression "connection->next = pMVar4" (field_expression "connection->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar32->suspended_connections_tail != (MHD_Connection *)0x0) goto LAB_0001b7b8;" if (parenthesized_expression "(pMVar32->suspended_connections_tail != (MHD_Connection *)0x0)" ( (binary_expression "pMVar32->suspended_connections_tail != (MHD_Connection *)0x0" (field_expression "pMVar32->suspended_connections_tail" identifier -> field_identifier) != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001b7b8;" goto statement_identifier ;)) (labeled_statement "LAB_0001b88c:\n    pMVar32->suspended_connections_tail = connection;" statement_identifier : (expression_statement "pMVar32->suspended_connections_tail = connection;" (assignment_expression "pMVar32->suspended_connections_tail = connection" (field_expression "pMVar32->suspended_connections_tail" identifier -> field_identifier) = identifier) ;)) }) (else_clause "else {\n    connection->prev->next = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;\nLAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    pMVar4->prev = connection;\n  }" else (compound_statement "{\n    connection->prev->next = connection->next;\n    pMVar4 = connection->next;\n    pMVar22 = connection->prev;\n    if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;\nLAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;\n    connection->next = (MHD_Connection *)0x0;\n    connection->prev = (MHD_Connection *)0x0;\n    pMVar4 = pMVar32->suspended_connections_head;\n    connection->next = pMVar4;\n    if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    pMVar4->prev = connection;\n  }" { (expression_statement "connection->prev->next = connection->next;" (assignment_expression "connection->prev->next = connection->next" (field_expression "connection->prev->next" (field_expression "connection->prev" identifier -> field_identifier) -> field_identifier) = (field_expression "connection->next" identifier -> field_identifier)) ;) (expression_statement "pMVar4 = connection->next;" (assignment_expression "pMVar4 = connection->next" identifier = (field_expression "connection->next" identifier -> field_identifier)) ;) (expression_statement "pMVar22 = connection->prev;" (assignment_expression "pMVar22 = connection->prev" identifier = (field_expression "connection->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar4 != (MHD_Connection *)0x0) goto LAB_0001b798;" if (parenthesized_expression "(pMVar4 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001b798;" goto statement_identifier ;)) (labeled_statement "LAB_0001b86c:\n    pMVar32->connections_tail = pMVar22;" statement_identifier : (expression_statement "pMVar32->connections_tail = pMVar22;" (assignment_expression "pMVar32->connections_tail = pMVar22" (field_expression "pMVar32->connections_tail" identifier -> field_identifier) = identifier) ;)) (expression_statement "connection->next = (MHD_Connection *)0x0;" (assignment_expression "connection->next = (MHD_Connection *)0x0" (field_expression "connection->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connection->prev = (MHD_Connection *)0x0;" (assignment_expression "connection->prev = (MHD_Connection *)0x0" (field_expression "connection->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar4 = pMVar32->suspended_connections_head;" (assignment_expression "pMVar4 = pMVar32->suspended_connections_head" identifier = (field_expression "pMVar32->suspended_connections_head" identifier -> field_identifier)) ;) (expression_statement "connection->next = pMVar4;" (assignment_expression "connection->next = pMVar4" (field_expression "connection->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar32->suspended_connections_tail == (MHD_Connection *)0x0) goto LAB_0001b88c;" if (parenthesized_expression "(pMVar32->suspended_connections_tail == (MHD_Connection *)0x0)" ( (binary_expression "pMVar32->suspended_connections_tail == (MHD_Connection *)0x0" (field_expression "pMVar32->suspended_connections_tail" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001b88c;" goto statement_identifier ;)) (labeled_statement "LAB_0001b7b8:\n    pMVar4->prev = connection;" statement_identifier : (expression_statement "pMVar4->prev = connection;" (assignment_expression "pMVar4->prev = connection" (field_expression "pMVar4->prev" identifier -> field_identifier) = identifier) ;)) }))) (expression_statement "pMVar32->suspended_connections_head = connection;" (assignment_expression "pMVar32->suspended_connections_head = connection" (field_expression "pMVar32->suspended_connections_head" identifier -> field_identifier) = identifier) ;) (expression_statement "connection->suspended = true;" (assignment_expression "connection->suspended = true" (field_expression "connection->suspended" identifier -> field_identifier) = true) ;) (if_statement "if ((pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG) {\n    MVar5 = connection->epoll_state;\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;\n    connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;\n  }" if (parenthesized_expression "((pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG)" ( (binary_expression "(pMVar32->options & MHD_USE_EPOLL) != MHD_NO_FLAG" (parenthesized_expression "(pMVar32->options & MHD_USE_EPOLL)" ( (binary_expression "pMVar32->options & MHD_USE_EPOLL" (field_expression "pMVar32->options" identifier -> field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n    MVar5 = connection->epoll_state;\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }\n    if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;\n    connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;\n  }" { (expression_statement "MVar5 = connection->epoll_state;" (assignment_expression "MVar5 = connection->epoll_state" identifier = (field_expression "connection->epoll_state" identifier -> field_identifier)) ;) (if_statement "if ((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY) {\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }" if (parenthesized_expression "((MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY)" ( (binary_expression "(MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL) != MHD_EPOLL_STATE_UNREADY" (parenthesized_expression "(MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL)" ( (binary_expression "MVar5 & MHD_EPOLL_STATE_IN_EREADY_EDLL" identifier & identifier) )) != identifier) )) (compound_statement "{\n      if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }\n      if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }\n      connection->nextE = (MHD_Connection *)0x0;\n      connection->prevE = (MHD_Connection *)0x0;\n      MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;\n      connection->epoll_state = MVar5;\n    }" { (if_statement "if (connection->prevE == (MHD_Connection *)0x0) {\n        pMVar32->eready_head = connection->nextE;\n      }\n      else {\n        connection->prevE->nextE = connection->nextE;\n      }" if (parenthesized_expression "(connection->prevE == (MHD_Connection *)0x0)" ( (binary_expression "connection->prevE == (MHD_Connection *)0x0" (field_expression "connection->prevE" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar32->eready_head = connection->nextE;\n      }" { (expression_statement "pMVar32->eready_head = connection->nextE;" (assignment_expression "pMVar32->eready_head = connection->nextE" (field_expression "pMVar32->eready_head" identifier -> field_identifier) = (field_expression "connection->nextE" identifier -> field_identifier)) ;) }) (else_clause "else {\n        connection->prevE->nextE = connection->nextE;\n      }" else (compound_statement "{\n        connection->prevE->nextE = connection->nextE;\n      }" { (expression_statement "connection->prevE->nextE = connection->nextE;" (assignment_expression "connection->prevE->nextE = connection->nextE" (field_expression "connection->prevE->nextE" (field_expression "connection->prevE" identifier -> field_identifier) -> field_identifier) = (field_expression "connection->nextE" identifier -> field_identifier)) ;) }))) (if_statement "if (connection->nextE == (MHD_Connection *)0x0) {\n        pMVar32->eready_tail = connection->prevE;\n      }\n      else {\n        connection->nextE->prevE = connection->prevE;\n      }" if (parenthesized_expression "(connection->nextE == (MHD_Connection *)0x0)" ( (binary_expression "connection->nextE == (MHD_Connection *)0x0" (field_expression "connection->nextE" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar32->eready_tail = connection->prevE;\n      }" { (expression_statement "pMVar32->eready_tail = connection->prevE;" (assignment_expression "pMVar32->eready_tail = connection->prevE" (field_expression "pMVar32->eready_tail" identifier -> field_identifier) = (field_expression "connection->prevE" identifier -> field_identifier)) ;) }) (else_clause "else {\n        connection->nextE->prevE = connection->prevE;\n      }" else (compound_statement "{\n        connection->nextE->prevE = connection->prevE;\n      }" { (expression_statement "connection->nextE->prevE = connection->prevE;" (assignment_expression "connection->nextE->prevE = connection->prevE" (field_expression "connection->nextE->prevE" (field_expression "connection->nextE" identifier -> field_identifier) -> field_identifier) = (field_expression "connection->prevE" identifier -> field_identifier)) ;) }))) (expression_statement "connection->nextE = (MHD_Connection *)0x0;" (assignment_expression "connection->nextE = (MHD_Connection *)0x0" (field_expression "connection->nextE" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connection->prevE = (MHD_Connection *)0x0;" (assignment_expression "connection->prevE = (MHD_Connection *)0x0" (field_expression "connection->prevE" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL;" (assignment_expression "MVar5 = connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL" identifier = (binary_expression "connection->epoll_state & ~MHD_EPOLL_STATE_IN_EREADY_EDLL" (field_expression "connection->epoll_state" identifier -> field_identifier) & (unary_expression "~MHD_EPOLL_STATE_IN_EREADY_EDLL" ~ identifier))) ;) (expression_statement "connection->epoll_state = MVar5;" (assignment_expression "connection->epoll_state = MVar5" (field_expression "connection->epoll_state" identifier -> field_identifier) = identifier) ;) })) (if_statement "if ((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY) goto LAB_0001b8d0;" if (parenthesized_expression "((MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY)" ( (binary_expression "(MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET) != MHD_EPOLL_STATE_UNREADY" (parenthesized_expression "(MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET)" ( (binary_expression "MVar5 & MHD_EPOLL_STATE_IN_EPOLL_SET" identifier & identifier) )) != identifier) )) (goto_statement "goto LAB_0001b8d0;" goto statement_identifier ;)) (expression_statement "connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED;" (assignment_expression "connection->epoll_state = MVar5 | MHD_EPOLL_STATE_SUSPENDED" (field_expression "connection->epoll_state" identifier -> field_identifier) = (binary_expression "MVar5 | MHD_EPOLL_STATE_SUSPENDED" identifier | identifier)) ;) })) (while_statement "while( true ) {\n    iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);\n    if (iVar3 == 0) {\n      return;\n    }\nLAB_0001b988:\n    uVar25 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);\n    if (iVar3 != 0) break;\n    connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);\n    if (iVar3 == 0) {\n      return;\n    }\nLAB_0001b988:\n    uVar25 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);\n    if (iVar3 != 0) break;\n    connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;\n  }" { (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar34)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar34)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0001b988:\n    uVar25 = 0xab8;" statement_identifier : (expression_statement "uVar25 = 0xab8;" (assignment_expression "uVar25 = 0xab8" identifier = number_literal) ;)) (labeled_statement "LAB_0001b8ac:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);" statement_identifier : (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003f070)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003f070" * (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar25,\n               PTR_DAT_0003f05c + -0x51b8)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003f068" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001b8d0:\n    iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0);" (assignment_expression "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(pMVar32->epoll_fd,2,connection->socket_fd,0)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" ( (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" * (cast_expression "(code *)PTR_epoll_ctl_0003f278" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar32->epoll_fd,2,connection->socket_fd,0)" ( (field_expression "pMVar32->epoll_fd" identifier -> field_identifier) , number_literal , (field_expression "connection->socket_fd" identifier -> field_identifier) , number_literal )))) ;)) (if_statement "if (iVar3 != 0) break;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED;" (assignment_expression "connection->epoll_state =\n         connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED" (field_expression "connection->epoll_state" identifier -> field_identifier) = (binary_expression "connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET | MHD_EPOLL_STATE_SUSPENDED" (binary_expression "connection->epoll_state & ~MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "connection->epoll_state" identifier -> field_identifier) & (unary_expression "~MHD_EPOLL_STATE_IN_EPOLL_SET" ~ identifier)) | identifier)) ;) })) (expression_statement "pMVar4 = *(MHD_Connection **)PTR_mhd_panic_cls_0003f068;" (assignment_expression "pMVar4 = *(MHD_Connection **)PTR_mhd_panic_cls_0003f068" identifier = (pointer_expression "*(MHD_Connection **)PTR_mhd_panic_cls_0003f068" * (cast_expression "(MHD_Connection **)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "MHD_Connection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar39 = *(code **)PTR_mhd_panic_0003f070;" (assignment_expression "pcVar39 = *(code **)PTR_mhd_panic_0003f070" identifier = (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar39)(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);" (call_expression "(*pcVar39)(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pMVar4,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x4f40" identifier + number_literal) ))) ;) (if_statement "if ((pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG) {\n    if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }\n    internal_suspend_connection_(pMVar4);\n    return;\n  }" if (parenthesized_expression "((pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(pMVar4->daemon->options & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(pMVar4->daemon->options & 0x2000)" ( (binary_expression "pMVar4->daemon->options & 0x2000" (field_expression "pMVar4->daemon->options" (field_expression "pMVar4->daemon" identifier -> field_identifier) -> field_identifier) & number_literal) )) != identifier) )) (compound_statement "{\n    if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }\n    internal_suspend_connection_(pMVar4);\n    return;\n  }" { (if_statement "if (pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0) {\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }" if (parenthesized_expression "(pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar4->urh != (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar4->urh" identifier -> field_identifier) != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));\n      return;\n    }" { (expression_statement "MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554));" (call_expression "MHD_DLOG(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554))" identifier (argument_list "(pMVar4->daemon,(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554))" ( (field_expression "pMVar4->daemon" identifier -> field_identifier) , (cast_expression "(char *)(*(int *)(pcVar39 + 0x236a4) + -0x3554)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x236a4) + -0x3554)" ( (binary_expression "*(int *)(pcVar39 + 0x236a4) + -0x3554" (pointer_expression "*(int *)(pcVar39 + 0x236a4)" * (cast_expression "(int *)(pcVar39 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x236a4)" ( (binary_expression "pcVar39 + 0x236a4" identifier + number_literal) )))) + number_literal) ))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "internal_suspend_connection_(pMVar4);" (call_expression "internal_suspend_connection_(pMVar4)" identifier (argument_list "(pMVar4)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "pMVar20 = (MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0);" (assignment_expression "pMVar20 = (MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0)" identifier = (cast_expression "(MHD_Daemon *)**(undefined4 **)(pcVar39 + 0x236b0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x236b0)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x236b0)" * (cast_expression "(undefined4 **)(pcVar39 + 0x236b0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b0)" ( (binary_expression "pcVar39 + 0x236b0" identifier + number_literal) ))))))) ;) (expression_statement "pcVar40 = (code *)**(undefined4 **)(pcVar39 + 0x236b8);" (assignment_expression "pcVar40 = (code *)**(undefined4 **)(pcVar39 + 0x236b8)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar39 + 0x236b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x236b8)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x236b8)" * (cast_expression "(undefined4 **)(pcVar39 + 0x236b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b8)" ( (binary_expression "pcVar39 + 0x236b8" identifier + number_literal) ))))))) ;) (expression_statement "(*pcVar40)(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,\n             *(int *)(pcVar39 + 0x236a4) + -0x359c);" (call_expression "(*pcVar40)(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,\n             *(int *)(pcVar39 + 0x236a4) + -0x359c)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(pMVar20,*(int *)(pcVar39 + 0x236a4) + -0x40a0,0xae2,\n             *(int *)(pcVar39 + 0x236a4) + -0x359c)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x236a4) + -0x40a0" (pointer_expression "*(int *)(pcVar39 + 0x236a4)" * (cast_expression "(int *)(pcVar39 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x236a4)" ( (binary_expression "pcVar39 + 0x236a4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x236a4) + -0x359c" (pointer_expression "*(int *)(pcVar39 + 0x236a4)" * (cast_expression "(int *)(pcVar39 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x236a4)" ( (binary_expression "pcVar39 + 0x236a4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pMVar30 = (MHD_Daemon *)pMVar20->cleanup_head;" (assignment_expression "pMVar30 = (MHD_Daemon *)pMVar20->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)pMVar20->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pMVar20->cleanup_head" identifier -> field_identifier))) ;) (if_statement "if ((pMVar30->options & 0x2000) == MHD_NO_FLAG) {\n    (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514);\n    pMVar20 = pMVar32;\n  }\n  else {\n    pMVar34 = &pMVar30->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    pcVar39 = *(code **)(pcVar40 + 0x23904);\n    *(undefined1 *)&pMVar20->port = 1;\n    pMVar30->resuming = true;\n    iVar3 = (*pcVar39)(pMVar34);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }\n  }" if (parenthesized_expression "((pMVar30->options & 0x2000) == MHD_NO_FLAG)" ( (binary_expression "(pMVar30->options & 0x2000) == MHD_NO_FLAG" (parenthesized_expression "(pMVar30->options & 0x2000)" ( (binary_expression "pMVar30->options & 0x2000" (field_expression "pMVar30->options" identifier -> field_identifier) & number_literal) )) == identifier) )) (compound_statement "{\n    (*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514);\n    pMVar20 = pMVar32;\n  }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514);" (call_expression "(*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n              (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar40 + 0x23638))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar40 + 0x23638)" * (cast_expression "(code *)**(undefined4 **)(pcVar40 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar40 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar40 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar40 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23638)" ( (binary_expression "pcVar40 + 0x23638" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar40 + 0x23624) + -0x3514)" ( (pointer_expression "**(undefined4 **)(pcVar40 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar40 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar40 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23630)" ( (binary_expression "pcVar40 + 0x23630" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x3514" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pMVar20 = pMVar32;" (assignment_expression "pMVar20 = pMVar32" identifier = identifier) ;) }) (else_clause "else {\n    pMVar34 = &pMVar30->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    pcVar39 = *(code **)(pcVar40 + 0x23904);\n    *(undefined1 *)&pMVar20->port = 1;\n    pMVar30->resuming = true;\n    iVar3 = (*pcVar39)(pMVar34);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }\n  }" else (compound_statement "{\n    pMVar34 = &pMVar30->cleanup_connection_mutex;\n    iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);\n    if (iVar3 != 0) goto LAB_0001bb7c;\n    pcVar39 = *(code **)(pcVar40 + 0x23904);\n    *(undefined1 *)&pMVar20->port = 1;\n    pMVar30->resuming = true;\n    iVar3 = (*pcVar39)(pMVar34);\n    if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }\n  }" { (expression_statement "pMVar34 = &pMVar30->cleanup_connection_mutex;" (assignment_expression "pMVar34 = &pMVar30->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar30->cleanup_connection_mutex" & (field_expression "pMVar30->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34);" (assignment_expression "iVar3 = (**(code **)(pcVar40 + 0x23870))(pMVar34)" identifier = (call_expression "(**(code **)(pcVar40 + 0x23870))(pMVar34)" (parenthesized_expression "(**(code **)(pcVar40 + 0x23870))" ( (pointer_expression "**(code **)(pcVar40 + 0x23870)" * (pointer_expression "*(code **)(pcVar40 + 0x23870)" * (cast_expression "(code **)(pcVar40 + 0x23870)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23870)" ( (binary_expression "pcVar40 + 0x23870" identifier + number_literal) ))))) )) (argument_list "(pMVar34)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001bb7c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bb7c;" goto statement_identifier ;)) (expression_statement "pcVar39 = *(code **)(pcVar40 + 0x23904);" (assignment_expression "pcVar39 = *(code **)(pcVar40 + 0x23904)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x23904)" * (cast_expression "(code **)(pcVar40 + 0x23904)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23904)" ( (binary_expression "pcVar40 + 0x23904" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)&pMVar20->port = 1;" (assignment_expression "*(undefined1 *)&pMVar20->port = 1" (pointer_expression "*(undefined1 *)&pMVar20->port" * (cast_expression "(undefined1 *)&pMVar20->port" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar20->port" & (field_expression "pMVar20->port" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pMVar30->resuming = true;" (assignment_expression "pMVar30->resuming = true" (field_expression "pMVar30->resuming" identifier -> field_identifier) = true) ;) (expression_statement "iVar3 = (*pcVar39)(pMVar34);" (assignment_expression "iVar3 = (*pcVar39)(pMVar34)" identifier = (call_expression "(*pcVar39)(pMVar34)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(pMVar34)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = (pMVar30->itc).fd;\n      if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }\n      return;\n    }" { (expression_statement "iVar3 = (pMVar30->itc).fd;" (assignment_expression "iVar3 = (pMVar30->itc).fd" identifier = (field_expression "(pMVar30->itc).fd" (parenthesized_expression "(pMVar30->itc)" ( (field_expression "pMVar30->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)) {\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }" if (parenthesized_expression "(((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb))" ( (binary_expression "((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)) && (piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)" (parenthesized_expression "((iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1))" ( (binary_expression "(iVar3 != -1) &&\n          (iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)" (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1)" ( (comma_expression "iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8),\n          iVar3 < 1" (assignment_expression "iVar3 = (**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8)" identifier = (call_expression "(**(code **)(pcVar40 + 0x237e8))(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x237e8))" ( (pointer_expression "**(code **)(pcVar40 + 0x237e8)" * (pointer_expression "*(code **)(pcVar40 + 0x237e8)" * (cast_expression "(code **)(pcVar40 + 0x237e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x237e8)" ( (binary_expression "pcVar40 + 0x237e8" identifier + number_literal) ))))) )) (argument_list "(iVar3,*(int *)(pcVar40 + 0x23624) + -0x28d8,8)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x28d8" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar3 < 1" identifier < number_literal)) ))) )) && (parenthesized_expression "(piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb)" ( (comma_expression "piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))(), *piVar6 != 0xb" (assignment_expression "piVar6 = (int *)(**(code **)(pcVar40 + 0x237cc))()" identifier = (cast_expression "(int *)(**(code **)(pcVar40 + 0x237cc))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x237cc))()" (parenthesized_expression "(**(code **)(pcVar40 + 0x237cc))" ( (pointer_expression "**(code **)(pcVar40 + 0x237cc)" * (pointer_expression "*(code **)(pcVar40 + 0x237cc)" * (cast_expression "(code **)(pcVar40 + 0x237cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x237cc)" ( (binary_expression "pcVar40 + 0x237cc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar6 != 0xb" (pointer_expression "*piVar6" * identifier) != number_literal)) ))) )) (compound_statement "{\n        MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));\n        return;\n      }" { (expression_statement "MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc));" (call_expression "MHD_DLOG(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc))" identifier (argument_list "(pMVar30,(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc))" ( identifier , (cast_expression "(char *)(*(int *)(pcVar40 + 0x23624) + -0x34cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + 0x23624) + -0x34cc)" ( (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x34cc" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) }))) (expression_statement "(*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n            (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar40 + 0x23624) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar40 + 0x23638))\n            (**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar40 + 0x23624) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar40 + 0x23638))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar40 + 0x23638)" * (cast_expression "(code *)**(undefined4 **)(pcVar40 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar40 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar40 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar40 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23638)" ( (binary_expression "pcVar40 + 0x23638" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar40 + 0x23630),*(int *)(pcVar40 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar40 + 0x23624) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar40 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar40 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar40 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23630)" ( (binary_expression "pcVar40 + 0x23630" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x51b8" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001bb7c:\n  connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630);" statement_identifier : (expression_statement "connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630);" (assignment_expression "connection_00 = (MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630)" identifier = (cast_expression "(MHD_Daemon *)**(undefined4 **)(pcVar40 + 0x23630)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar40 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar40 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar40 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23630)" ( (binary_expression "pcVar40 + 0x23630" identifier + number_literal) ))))))) ;)) (expression_statement "pMVar28 = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0);" (assignment_expression "pMVar28 = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x51e0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + 0x23624) + -0x51e0)" ( (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x51e0" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar39 = (code *)**(undefined4 **)(pcVar40 + 0x23638);" (assignment_expression "pcVar39 = (code *)**(undefined4 **)(pcVar40 + 0x23638)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar40 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar40 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar40 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar40 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x23638)" ( (binary_expression "pcVar40 + 0x23638" identifier + number_literal) ))))))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar40 + 0x23624) + -0x40a0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + 0x23624) + -0x40a0)" ( (binary_expression "*(int *)(pcVar40 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar40 + 0x23624)" * (cast_expression "(int *)(pcVar40 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x23624)" ( (binary_expression "pcVar40 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar39)(connection_00,p,0xb01);" (call_expression "(*pcVar39)(connection_00,p,0xb01)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(connection_00,p,0xb01)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar6 = *(int **)(pcVar39 + 0x23748);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x23748)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x23748)" * (cast_expression "(int **)(pcVar39 + 0x23748)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23748)" ( (binary_expression "pcVar39 + 0x23748" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = auStack_3b0 + 0xc;" (assignment_expression "puVar36 = auStack_3b0 + 0xc" identifier = (binary_expression "auStack_3b0 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar25 = 0x8000001f;" (assignment_expression "uVar25 = 0x8000001f" identifier = number_literal) ;) (expression_statement "daemon = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "daemon = (MHD_Daemon *)connection_00->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier))) ;) (expression_statement "pMStack_9c = (MHD_Daemon *)*piVar6;" (assignment_expression "pMStack_9c = (MHD_Daemon *)*piVar6" identifier = (cast_expression "(MHD_Daemon *)*piVar6" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "pMVar33 = (MHD_Daemon *)(daemon->options & MHD_USE_POLL);" (assignment_expression "pMVar33 = (MHD_Daemon *)(daemon->options & MHD_USE_POLL)" identifier = (cast_expression "(MHD_Daemon *)(daemon->options & MHD_USE_POLL)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(daemon->options & MHD_USE_POLL)" ( (binary_expression "daemon->options & MHD_USE_POLL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )))) ;) (expression_statement "pMStack_98 = pMVar30;" (assignment_expression "pMStack_98 = pMVar30" identifier = identifier) ;) (expression_statement "pMStack_94 = pMVar20;" (assignment_expression "pMStack_94 = pMVar20" identifier = identifier) ;) (expression_statement "pMStack_90 = pMVar34;" (assignment_expression "pMStack_90 = pMVar34" identifier = identifier) ;) (expression_statement "pvVar7 = (void *)(**(code **)(pcVar39 + 0x23740))();" (assignment_expression "pvVar7 = (void *)(**(code **)(pcVar39 + 0x23740))()" identifier = (cast_expression "(void *)(**(code **)(pcVar39 + 0x23740))()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23740))" ( (pointer_expression "**(code **)(pcVar39 + 0x23740)" * (pointer_expression "*(code **)(pcVar39 + 0x23740)" * (cast_expression "(code **)(pcVar39 + 0x23740)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23740)" ( (binary_expression "pcVar39 + 0x23740" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 8)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 8)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 8" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (expression_statement "connection_00->uri_log_callback_cls = pvVar7;" (assignment_expression "connection_00->uri_log_callback_cls = pvVar7" (field_expression "connection_00->uri_log_callback_cls" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar20 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974);" (assignment_expression "pMVar20 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7974)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234e0) + -0x7974)" ( (binary_expression "*(int *)(pcVar39 + 0x234e0) + -0x7974" (pointer_expression "*(int *)(pcVar39 + 0x234e0)" * (cast_expression "(int *)(pcVar39 + 0x234e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234e0)" ( (binary_expression "pcVar39 + 0x234e0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pMVar32 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar32 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001bc2c:\n  pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown;" statement_identifier : (expression_statement "pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown;" (assignment_expression "pMVar30 = (MHD_Daemon *)(uint)daemon->shutdown" identifier = (cast_expression "(MHD_Daemon *)(uint)daemon->shutdown" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)daemon->shutdown" ( (type_descriptor "uint" type_identifier) ) (field_expression "daemon->shutdown" identifier -> field_identifier)))) ;)) (if_statement "if (pMVar30 != (MHD_Daemon *)0x0) {\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }\nLAB_0001bdfc:\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\nLAB_0001bcc4:\n    if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }\n    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }\n    pMVar26 = (MHD_Daemon *)0x8;\n    if ((daemon->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" if (parenthesized_expression "(pMVar30 != (MHD_Daemon *)0x0)" ( (binary_expression "pMVar30 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\njoined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }\nLAB_0001bdfc:\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\nLAB_0001bcc4:\n    if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }\n    if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }\n    pMVar26 = (MHD_Daemon *)0x8;\n    if ((daemon->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" { (labeled_statement "joined_r0x0001bdcc:\n    if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }" statement_identifier : (if_statement "if (iVar3 != 0x13) {\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }" if (parenthesized_expression "(iVar3 != 0x13)" ( (binary_expression "iVar3 != 0x13" identifier != number_literal) )) (compound_statement "{\n      p = (MHD_Daemon *)0x3;\n      if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }\n      MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);\n    }" { (expression_statement "p = (MHD_Daemon *)0x3;" (assignment_expression "p = (MHD_Daemon *)0x3" identifier = (cast_expression "(MHD_Daemon *)0x3" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (daemon->shutdown == false) {\n        p = (MHD_Daemon *)0x1;\n      }" if (parenthesized_expression "(daemon->shutdown == false)" ( (binary_expression "daemon->shutdown == false" (field_expression "daemon->shutdown" identifier -> field_identifier) == false) )) (compound_statement "{\n        p = (MHD_Daemon *)0x1;\n      }" { (expression_statement "p = (MHD_Daemon *)0x1;" (assignment_expression "p = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p);" (call_expression "MHD_connection_close_((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p)" identifier (argument_list "((MHD_Connection *)connection_00,(MHD_RequestTerminationCode)p)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(MHD_RequestTerminationCode)p" ( (type_descriptor "MHD_RequestTerminationCode" type_identifier) ) identifier) ))) ;) }))) (labeled_statement "LAB_0001bdfc:\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);" statement_identifier : (expression_statement "MHD_connection_handle_idle((MHD_Connection *)connection_00);" (call_expression "MHD_connection_handle_idle((MHD_Connection *)connection_00)" identifier (argument_list "((MHD_Connection *)connection_00)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (labeled_statement "LAB_0001bcc4:\n    if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }" statement_identifier : (if_statement "if (connection_00->eready_tail != (MHD_Connection *)0x0) {\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }" if (parenthesized_expression "(connection_00->eready_tail != (MHD_Connection *)0x0)" ( (binary_expression "connection_00->eready_tail != (MHD_Connection *)0x0" (field_expression "connection_00->eready_tail" identifier -> field_identifier) != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar39 + 0x23734))();\n      connection_00->eready_tail = (MHD_Connection *)0x0;\n    }" { (expression_statement "(**(code **)(pcVar39 + 0x23734))();" (call_expression "(**(code **)(pcVar39 + 0x23734))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23734))" ( (pointer_expression "**(code **)(pcVar39 + 0x23734)" * (pointer_expression "*(code **)(pcVar39 + 0x23734)" * (cast_expression "(code **)(pcVar39 + 0x23734)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23734)" ( (binary_expression "pcVar39 + 0x23734" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "connection_00->eready_tail = (MHD_Connection *)0x0;" (assignment_expression "connection_00->eready_tail = (MHD_Connection *)0x0" (field_expression "connection_00->eready_tail" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((&(connection_00->per_ip_connection_mutex).__align)[4] != -1) {\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }" if (parenthesized_expression "((&(connection_00->per_ip_connection_mutex).__align)[4] != -1)" ( (binary_expression "(&(connection_00->per_ip_connection_mutex).__align)[4] != -1" (subscript_expression "(&(connection_00->per_ip_connection_mutex).__align)[4]" (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align)" ( (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) )) [ number_literal ]) != number_literal) )) (compound_statement "{\n      p = (MHD_Daemon *)0x1;\n      (**(code **)(pcVar39 + 0x235c4))();\n    }" { (expression_statement "p = (MHD_Daemon *)0x1;" (assignment_expression "p = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar39 + 0x235c4))();" (call_expression "(**(code **)(pcVar39 + 0x235c4))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x235c4))" ( (pointer_expression "**(code **)(pcVar39 + 0x235c4)" * (pointer_expression "*(code **)(pcVar39 + 0x235c4)" * (cast_expression "(code **)(pcVar39 + 0x235c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x235c4)" ( (binary_expression "pcVar39 + 0x235c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pMVar26 = (MHD_Daemon *)0x8;" (assignment_expression "pMVar26 = (MHD_Daemon *)0x8" identifier = (cast_expression "(MHD_Daemon *)0x8" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((daemon->itc).fd != -1) {\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }" if (parenthesized_expression "((daemon->itc).fd != -1)" ( (binary_expression "(daemon->itc).fd != -1" (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);\n      iVar3 = (**(code **)(pcVar39 + 0x2367c))();\n      if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }\n    }" { (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x28d8)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x28d8)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x28d8" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x2367c))();" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x2367c))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x2367c))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x2367c))" ( (pointer_expression "**(code **)(pcVar39 + 0x2367c)" * (pointer_expression "*(code **)(pcVar39 + 0x2367c)" * (cast_expression "(code **)(pcVar39 + 0x2367c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x2367c)" ( (binary_expression "pcVar39 + 0x2367c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)) {\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }" if (parenthesized_expression "((iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb))" ( (binary_expression "(iVar3 < 1) && (piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)" (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb)" ( (comma_expression "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))(), *piVar11 != 0xb" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar11 != 0xb" (pointer_expression "*piVar11" * identifier) != number_literal)) ))) )) (compound_statement "{\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);\n        MHD_DLOG(daemon,(char *)p);\n      }" { (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x341c)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x341c)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x341c" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG(daemon,(char *)p);" (call_expression "MHD_DLOG(daemon,(char *)p)" identifier (argument_list "(daemon,(char *)p)" ( identifier , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) })) (goto_statement "goto LAB_0001bd0c;" goto statement_identifier ;) })) (if_statement "if (iVar3 == 0x13) goto LAB_0001bdfc;" if (parenthesized_expression "(iVar3 == 0x13)" ( (binary_expression "iVar3 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_0001bdfc;" goto statement_identifier ;)) (expression_statement "unaff_s6 = (MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1);" (assignment_expression "unaff_s6 = (MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1)" identifier = (binary_expression "(MHD_Daemon *)(uint)*(byte *)((int)&connection_00->per_ip_connection_limit + 1)" (cast_expression "(MHD_Daemon *)(uint)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)&connection_00->per_ip_connection_limit + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&connection_00->per_ip_connection_limit + 1)" ( (binary_expression "(int)&connection_00->per_ip_connection_limit + 1" (cast_expression "(int)&connection_00->per_ip_connection_limit" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&connection_00->per_ip_connection_limit" & (field_expression "connection_00->per_ip_connection_limit" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)daemon->connection_timeout;" (assignment_expression "unaff_s7 = (MHD_Daemon *)daemon->connection_timeout" identifier = (cast_expression "(MHD_Daemon *)daemon->connection_timeout" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "daemon->connection_timeout" identifier -> field_identifier))) ;) (if_statement "if ((unaff_s6 != (MHD_Daemon *)0x0) &&\n     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)) {\n    pMVar4 = (MHD_Connection *)(daemon->itc).fd;\n    pMVar32 = unaff_s6;\n    if (pMVar33 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_3b0._12_4_ = pMVar4;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }\n    else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((unaff_s6 != (MHD_Daemon *)0x0) &&\n     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0))" ( (binary_expression "(unaff_s6 != (MHD_Daemon *)0x0) &&\n     (iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)" (parenthesized_expression "(unaff_s6 != (MHD_Daemon *)0x0)" ( (binary_expression "unaff_s6 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0)" ( (comma_expression "iVar3._0_1_ = connection_00->shutdown, iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0" (assignment_expression "iVar3._0_1_ = connection_00->shutdown" (field_expression "iVar3._0_1_" identifier . field_identifier) = (field_expression "connection_00->shutdown" identifier -> field_identifier)) , (comma_expression "iVar3._1_1_ = connection_00->was_quiesced,\n     iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0" (assignment_expression "iVar3._1_1_ = connection_00->was_quiesced" (field_expression "iVar3._1_1_" identifier . field_identifier) = (field_expression "connection_00->was_quiesced" identifier -> field_identifier)) , (comma_expression "iVar3._2_1_ = connection_00->at_limit, iVar3._3_1_ = connection_00->resuming, iVar3 == 0" (assignment_expression "iVar3._2_1_ = connection_00->at_limit" (field_expression "iVar3._2_1_" identifier . field_identifier) = (field_expression "connection_00->at_limit" identifier -> field_identifier)) , (comma_expression "iVar3._3_1_ = connection_00->resuming, iVar3 == 0" (assignment_expression "iVar3._3_1_ = connection_00->resuming" (field_expression "iVar3._3_1_" identifier . field_identifier) = (field_expression "connection_00->resuming" identifier -> field_identifier)) , (binary_expression "iVar3 == 0" identifier == number_literal))))) ))) )) (compound_statement "{\n    pMVar4 = (MHD_Connection *)(daemon->itc).fd;\n    pMVar32 = unaff_s6;\n    if (pMVar33 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }\n    p = (MHD_Daemon *)0x1;\n    auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;\n    auStack_3b0._12_4_ = pMVar4;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }\n    else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    goto LAB_0001bc2c;\n  }" { (expression_statement "pMVar4 = (MHD_Connection *)(daemon->itc).fd;" (assignment_expression "pMVar4 = (MHD_Connection *)(daemon->itc).fd" identifier = (cast_expression "(MHD_Connection *)(daemon->itc).fd" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pMVar32 = unaff_s6;" (assignment_expression "pMVar32 = unaff_s6" identifier = identifier) ;) (if_statement "if (pMVar33 == (MHD_Daemon *)0x0) {\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }" if (parenthesized_expression "(pMVar33 == (MHD_Daemon *)0x0)" ( (binary_expression "pMVar33 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      p = (MHD_Daemon *)(auStack_3b0 + 0x14);\n      pMVar28 = p;\n      do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);\n      if (iVar3 == 0) goto LAB_0001c364;\n      pMVar28 = (MHD_Daemon *)0x0;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);\n      if (-1 < iVar3) goto LAB_0001c380;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar26 = (MHD_Daemon *)*puVar14;\n      if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar26;\n      pMVar33 = pMVar32;\nLAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n      MHD_DLOG(pMVar32,(char *)p,pMVar26);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n      goto joined_r0x0001bdcc;\n    }" { (expression_statement "p = (MHD_Daemon *)(auStack_3b0 + 0x14);" (assignment_expression "p = (MHD_Daemon *)(auStack_3b0 + 0x14)" identifier = (cast_expression "(MHD_Daemon *)(auStack_3b0 + 0x14)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_3b0 + 0x14)" ( (binary_expression "auStack_3b0 + 0x14" identifier + number_literal) )))) ;) (expression_statement "pMVar28 = p;" (assignment_expression "pMVar28 = p" identifier = identifier) ;) (do_statement "do {\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      } while (pMVar28 != (MHD_Daemon *)auStack_31c);" do (compound_statement "{\n        pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;\n        pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;\n      }" { (expression_statement "pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar28->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar28->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls;" (assignment_expression "pMVar28 = (MHD_Daemon *)&pMVar28->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar28->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar28->default_handler_cls" & (field_expression "pMVar28->default_handler_cls" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pMVar28 != (MHD_Daemon *)auStack_31c)" ( (binary_expression "pMVar28 != (MHD_Daemon *)auStack_31c" identifier != (cast_expression "(MHD_Daemon *)auStack_31c" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "pMVar28 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar28 = (MHD_Daemon *)0x400" identifier = (cast_expression "(MHD_Daemon *)0x400" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400)" identifier (argument_list "((MHD_socket)pMVar4,(fd_set *)p,(MHD_socket *)0x0,0x400)" ( (cast_expression "(MHD_socket)pMVar4" ( (type_descriptor "MHD_socket" type_identifier) ) identifier) , (cast_expression "(fd_set *)p" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(MHD_socket *)0x0" ( (type_descriptor "MHD_socket *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "pMVar28 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar28 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0)" identifier = (call_expression "(**(code **)(pcVar39 + 0x23720))((daemon->itc).fd + 1,p,0)" (parenthesized_expression "(**(code **)(pcVar39 + 0x23720))" ( (pointer_expression "**(code **)(pcVar39 + 0x23720)" * (pointer_expression "*(code **)(pcVar39 + 0x23720)" * (cast_expression "(code **)(pcVar39 + 0x23720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23720)" ( (binary_expression "pcVar39 + 0x23720" identifier + number_literal) ))))) )) (argument_list "((daemon->itc).fd + 1,p,0)" ( (binary_expression "(daemon->itc).fd + 1" (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar3) goto LAB_0001c380;" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (goto_statement "goto LAB_0001c380;" goto statement_identifier ;)) (expression_statement "puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();" (assignment_expression "puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(uint *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar26 = (MHD_Daemon *)*puVar14;" (assignment_expression "pMVar26 = (MHD_Daemon *)*puVar14" identifier = (cast_expression "(MHD_Daemon *)*puVar14" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) (if_statement "if (pMVar26 == (MHD_Daemon *)0x4) goto LAB_0001c13c;" if (parenthesized_expression "(pMVar26 == (MHD_Daemon *)0x4)" ( (binary_expression "pMVar26 == (MHD_Daemon *)0x4" identifier == (cast_expression "(MHD_Daemon *)0x4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001c13c;" goto statement_identifier ;)) (expression_statement "pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "pMVar32 = (MHD_Daemon *)connection_00->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier))) ;) (expression_statement "pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);" (assignment_expression "pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26)" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x236b0))(pMVar26)" (parenthesized_expression "(**(code **)(pcVar39 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236b0)" * (pointer_expression "*(code **)(pcVar39 + 0x236b0)" * (cast_expression "(code **)(pcVar39 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b0)" ( (binary_expression "pcVar39 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "(pMVar26)" ( identifier ))))) ;) (expression_statement "pMVar30 = pMVar26;" (assignment_expression "pMVar30 = pMVar26" identifier = identifier) ;) (expression_statement "pMVar33 = pMVar32;" (assignment_expression "pMVar33 = pMVar32" identifier = identifier) ;) (labeled_statement "LAB_0001c18c:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);" statement_identifier : (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x3470)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x3470" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "MHD_DLOG(pMVar32,(char *)p,pMVar26);" (call_expression "MHD_DLOG(pMVar32,(char *)p,pMVar26)" identifier (argument_list "(pMVar32,(char *)p,pMVar26)" ( identifier , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;" (assignment_expression "iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner" identifier = (field_expression "(connection_00->cleanup_connection_mutex).__data.__owner" (field_expression "(connection_00->cleanup_connection_mutex).__data" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (expression_statement "p = (MHD_Daemon *)0x1;" (assignment_expression "p = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "auStack_3b0._16_4_ = &Elf32_Ehdr_00010000;" (assignment_expression "auStack_3b0._16_4_ = &Elf32_Ehdr_00010000" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) = (pointer_expression "&Elf32_Ehdr_00010000" & identifier)) ;) (expression_statement "auStack_3b0._12_4_ = pMVar4;" (assignment_expression "auStack_3b0._12_4_ = pMVar4" (field_expression "auStack_3b0._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcVar39 + 0x236e0))(puVar36,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar39 + 0x236e0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236e0)" * (pointer_expression "*(code **)(pcVar39 + 0x236e0)" * (cast_expression "(code **)(pcVar39 + 0x236e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236e0)" ( (binary_expression "pcVar39 + 0x236e0" identifier + number_literal) ))))) )) (argument_list "(puVar36,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }\n    else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n    }" { (expression_statement "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar11 != 4) {\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }" if (parenthesized_expression "(*piVar11 != 4)" ( (binary_expression "*piVar11 != 4" (pointer_expression "*piVar11" * identifier) != number_literal) )) (compound_statement "{\nLAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n        uVar8 = (**(code **)(pcVar39 + 0x236b0))();\n        p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n        MHD_DLOG(pMVar30,(char *)p,uVar8);\n        iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n        goto joined_r0x0001bdcc;\n      }" { (labeled_statement "LAB_0001bd98:\n        pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;" statement_identifier : (expression_statement "pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "pMVar30 = (MHD_Daemon *)connection_00->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier))) ;)) (expression_statement "uVar8 = (**(code **)(pcVar39 + 0x236b0))();" (assignment_expression "uVar8 = (**(code **)(pcVar39 + 0x236b0))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x236b0))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236b0)" * (pointer_expression "*(code **)(pcVar39 + 0x236b0)" * (cast_expression "(code **)(pcVar39 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b0)" ( (binary_expression "pcVar39 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x3450)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x3450" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG(pMVar30,(char *)p,uVar8);" (call_expression "MHD_DLOG(pMVar30,(char *)p,uVar8)" identifier (argument_list "(pMVar30,(char *)p,uVar8)" ( identifier , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 8)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 8)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 8" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c13c:\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);" statement_identifier : (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 8)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 8)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 8" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;)) }) (else_clause "else {\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" else (compound_statement "{\nLAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;\n      (**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" { (labeled_statement "LAB_0001c380:\n      p = (MHD_Daemon *)auStack_3b0;" statement_identifier : (expression_statement "p = (MHD_Daemon *)auStack_3b0;" (assignment_expression "p = (MHD_Daemon *)auStack_3b0" identifier = (cast_expression "(MHD_Daemon *)auStack_3b0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8);" (call_expression "(**(code **)(pcVar39 + 0x23774))((daemon->itc).fd,p,8)" (parenthesized_expression "(**(code **)(pcVar39 + 0x23774))" ( (pointer_expression "**(code **)(pcVar39 + 0x23774)" * (pointer_expression "*(code **)(pcVar39 + 0x23774)" * (cast_expression "(code **)(pcVar39 + 0x23774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23774)" ( (binary_expression "pcVar39 + 0x23774" identifier + number_literal) ))))) )) (argument_list "((daemon->itc).fd,p,8)" ( (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) , identifier , number_literal ))) ;) (expression_statement "iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;" (assignment_expression "iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner" identifier = (field_expression "(connection_00->cleanup_connection_mutex).__data.__owner" (field_expression "(connection_00->cleanup_connection_mutex).__data" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (if_statement "if (pMVar32 != (MHD_Daemon *)0x0) {\n    MHD_update_last_activity_((MHD_Connection *)connection_00);\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\n  }" if (parenthesized_expression "(pMVar32 != (MHD_Daemon *)0x0)" ( (binary_expression "pMVar32 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    MHD_update_last_activity_((MHD_Connection *)connection_00);\n    MHD_connection_handle_idle((MHD_Connection *)connection_00);\n  }" { (expression_statement "MHD_update_last_activity_((MHD_Connection *)connection_00);" (call_expression "MHD_update_last_activity_((MHD_Connection *)connection_00)" identifier (argument_list "((MHD_Connection *)connection_00)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "MHD_connection_handle_idle((MHD_Connection *)connection_00);" (call_expression "MHD_connection_handle_idle((MHD_Connection *)connection_00)" identifier (argument_list "((MHD_Connection *)connection_00)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 0xc)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 0xc)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 0xc" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (expression_statement "pMVar32 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar32 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))\n  {\n    if (0 < (int)unaff_s7) {\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar29 = (MHD_Daemon **)0x0;\n    if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n    auStack_3b0._16_4_ = (MHD_Connection *)0x0;\n    if (iVar3 == 1) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }\n    else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;\n    if (ppMVar29 == (MHD_Daemon **)0x0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }\n    p = (MHD_Daemon *)0x1;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))))" ( (binary_expression "(iVar3 != 2) && ((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0)))" (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) && (parenthesized_expression "((*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0)))" ( (parenthesized_expression "(*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0))" ( (binary_expression "*(char *)&connection_00->per_ip_connection_limit == '\0' || (iVar3 != 0)" (binary_expression "*(char *)&connection_00->per_ip_connection_limit == '\0'" (pointer_expression "*(char *)&connection_00->per_ip_connection_limit" * (cast_expression "(char *)&connection_00->per_ip_connection_limit" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection_00->per_ip_connection_limit" & (field_expression "connection_00->per_ip_connection_limit" identifier -> field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (0 < (int)unaff_s7) {\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    ppMVar29 = (MHD_Daemon **)0x0;\n    if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];\n    auStack_3b0._16_4_ = (MHD_Connection *)0x0;\n    if (iVar3 == 1) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }\n    else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;\n    if (ppMVar29 == (MHD_Daemon **)0x0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }\n    p = (MHD_Daemon *)0x1;\n    iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);\n    if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" { (if_statement "if (0 < (int)unaff_s7) {\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" if (parenthesized_expression "(0 < (int)unaff_s7)" ( (binary_expression "0 < (int)unaff_s7" number_literal < (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      tVar10 = MHD_monotonic_sec_counter();\n      iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;\n      if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);\n      pMStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" { (expression_statement "tVar10 = MHD_monotonic_sec_counter();" (assignment_expression "tVar10 = MHD_monotonic_sec_counter()" identifier = (call_expression "MHD_monotonic_sec_counter()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock;" (assignment_expression "iVar3 = tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock" identifier = (binary_expression "tVar10 - (connection_00->per_ip_connection_mutex).__data.__lock" identifier - (field_expression "(connection_00->per_ip_connection_mutex).__data.__lock" (field_expression "(connection_00->per_ip_connection_mutex).__data" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if ((int)unaff_s7 < iVar3) {\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }\n      else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }" if (parenthesized_expression "((int)unaff_s7 < iVar3)" ( (binary_expression "(int)unaff_s7 < iVar3" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n        unaff_s7 = (MHD_Daemon *)0x0;\n      }" { (expression_statement "unaff_s7 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s7 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }" else (compound_statement "{\n        unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);\n      }" { (expression_statement "unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3);" (assignment_expression "unaff_s7 = (MHD_Daemon *)((int)unaff_s7 - iVar3)" identifier = (cast_expression "(MHD_Daemon *)((int)unaff_s7 - iVar3)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 - iVar3)" ( (binary_expression "(int)unaff_s7 - iVar3" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) }))) (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 0xc)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 0xc)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 0xc)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 0xc" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (expression_statement "pMStack_3b8 = unaff_s7;" (assignment_expression "pMStack_3b8 = unaff_s7" identifier = identifier) ;) (goto_statement "goto LAB_0001bc90;" goto statement_identifier ;) })) (expression_statement "ppMVar29 = (MHD_Daemon **)0x0;" (assignment_expression "ppMVar29 = (MHD_Daemon **)0x0" identifier = (cast_expression "(MHD_Daemon **)0x0" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (pMVar33 == (MHD_Daemon *)0x0) goto LAB_0001be20;" if (parenthesized_expression "(pMVar33 == (MHD_Daemon *)0x0)" ( (binary_expression "pMVar33 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001be20;" goto statement_identifier ;)) (labeled_statement "LAB_0001bc98:\n    auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];" statement_identifier : (expression_statement "auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4];" (assignment_expression "auStack_3b0._12_4_ = (&(connection_00->per_ip_connection_mutex).__align)[4]" (field_expression "auStack_3b0._12_4_" identifier . field_identifier) = (subscript_expression "(&(connection_00->per_ip_connection_mutex).__align)[4]" (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align)" ( (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) )) [ number_literal ])) ;)) (expression_statement "auStack_3b0._16_4_ = (MHD_Connection *)0x0;" (assignment_expression "auStack_3b0._16_4_ = (MHD_Connection *)0x0" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar3 == 1) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }\n    else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      auStack_3b0._16_4_ = (MHD_Connection *)0x60000;\n    }" { (expression_statement "auStack_3b0._16_4_ = (MHD_Connection *)0x60000;" (assignment_expression "auStack_3b0._16_4_ = (MHD_Connection *)0x60000" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) = (cast_expression "(MHD_Connection *)0x60000" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;" else (if_statement "if (iVar3 == 0) {\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }\n    else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      auStack_3b0._16_4_ = &DAT_00030000;\n    }" { (expression_statement "auStack_3b0._16_4_ = &DAT_00030000;" (assignment_expression "auStack_3b0._16_4_ = &DAT_00030000" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) = (pointer_expression "&DAT_00030000" & identifier)) ;) }) (else_clause "else if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;" else (if_statement "if (iVar3 == 2) {\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }\n    else if (iVar3 == 3) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      auStack_3b0._16_4_ = (MHD_Connection *)0x20000;\n    }" { (expression_statement "auStack_3b0._16_4_ = (MHD_Connection *)0x20000;" (assignment_expression "auStack_3b0._16_4_ = (MHD_Connection *)0x20000" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) = (cast_expression "(MHD_Connection *)0x20000" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 == 3) goto LAB_0001bcc4;" else (if_statement "if (iVar3 == 3) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)))))))) (if_statement "if (ppMVar29 == (MHD_Daemon **)0x0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }" if (parenthesized_expression "(ppMVar29 == (MHD_Daemon **)0x0)" ( (binary_expression "ppMVar29 == (MHD_Daemon **)0x0" identifier == (cast_expression "(MHD_Daemon **)0x0" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      iVar3 = -1;\n    }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }" else (compound_statement "{\n      iVar3 = (int)pMStack_3b8 * 1000;\n    }" { (expression_statement "iVar3 = (int)pMStack_3b8 * 1000;" (assignment_expression "iVar3 = (int)pMStack_3b8 * 1000" identifier = (binary_expression "(int)pMStack_3b8 * 1000" (cast_expression "(int)pMStack_3b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) }))) (expression_statement "p = (MHD_Daemon *)0x1;" (assignment_expression "p = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3)" identifier = (call_expression "(**(code **)(pcVar39 + 0x236e0))(puVar36,1,iVar3)" (parenthesized_expression "(**(code **)(pcVar39 + 0x236e0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236e0)" * (pointer_expression "*(code **)(pcVar39 + 0x236e0)" * (cast_expression "(code **)(pcVar39 + 0x236e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236e0)" ( (binary_expression "pcVar39 + 0x236e0" identifier + number_literal) ))))) )) (argument_list "(puVar36,1,iVar3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }\n    else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n      if (*piVar11 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;\n    }" { (expression_statement "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar11 != 4) goto LAB_0001bd98;" if (parenthesized_expression "(*piVar11 != 4)" ( (binary_expression "*piVar11 != 4" (pointer_expression "*piVar11" * identifier) != number_literal) )) (goto_statement "goto LAB_0001bd98;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1b0:\n      iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;" statement_identifier : (expression_statement "iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner;" (assignment_expression "iVar3 = (connection_00->cleanup_connection_mutex).__data.__owner" identifier = (field_expression "(connection_00->cleanup_connection_mutex).__data.__owner" (field_expression "(connection_00->cleanup_connection_mutex).__data" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) }) (else_clause "else {\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }" else (compound_statement "{\n      pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);\n      bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;\n      pMVar28 = (MHD_Daemon *)(uint)bVar1;\n      p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);\n      iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);\n      if (iVar3 == 0) goto LAB_0001bcc4;\n      iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);\n      if (iVar3 == 0x14) goto LAB_0001c01c;\n    }" { (expression_statement "pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f);" (assignment_expression "pMVar26 = (MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f)" identifier = (cast_expression "(MHD_Daemon *)((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f)" ( (binary_expression "(uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f" (call_expression "(uint)(auStack_3b0._16_4_ << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(auStack_3b0._16_4_ << 0x1d)" ( (binary_expression "auStack_3b0._16_4_ << 0x1d" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bVar1 = (auStack_3b0._16_4_ & 0xba) != 0;" (assignment_expression "bVar1 = (auStack_3b0._16_4_ & 0xba) != 0" identifier = (binary_expression "(auStack_3b0._16_4_ & 0xba) != 0" (parenthesized_expression "(auStack_3b0._16_4_ & 0xba)" ( (binary_expression "auStack_3b0._16_4_ & 0xba" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) & number_literal) )) != number_literal)) ;) (expression_statement "pMVar28 = (MHD_Daemon *)(uint)bVar1;" (assignment_expression "pMVar28 = (MHD_Daemon *)(uint)bVar1" identifier = (cast_expression "(MHD_Daemon *)(uint)bVar1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1);" (assignment_expression "p = (MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1)" identifier = (cast_expression "(MHD_Daemon *)((int)(short)auStack_3b0._18_2_ & 1)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(short)auStack_3b0._18_2_ & 1)" ( (binary_expression "(int)(short)auStack_3b0._18_2_ & 1" (cast_expression "(int)(short)auStack_3b0._18_2_" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)auStack_3b0._18_2_" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "auStack_3b0._18_2_" identifier . field_identifier))) & number_literal) )))) ;) (expression_statement "iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1);" (assignment_expression "iVar3 = call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1)" identifier = (call_expression "call_handlers((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1)" identifier (argument_list "((MHD_Connection *)connection_00,SUB41(p,0),\n                            SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0),bVar1)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal ))) , (call_expression "SUB41((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(auStack_3b0._16_4_ << 0x1d) >> 0x1f" (call_expression "(uint)(auStack_3b0._16_4_ << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(auStack_3b0._16_4_ << 0x1d)" ( (binary_expression "auStack_3b0._16_4_ << 0x1d" (field_expression "auStack_3b0._16_4_" identifier . field_identifier) << number_literal) ))) >> number_literal) , number_literal ))) , identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 8)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 8)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 8" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (if_statement "if (iVar3 == 0x14) goto LAB_0001c01c;" if (parenthesized_expression "(iVar3 == 0x14)" ( (binary_expression "iVar3 == 0x14" identifier == number_literal) )) (goto_statement "goto LAB_0001c01c;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (expression_statement "pMStack_3b8 = (MHD_Daemon *)0x0;" (assignment_expression "pMStack_3b8 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001bc90:\n  uStack_3b4 = 0;" statement_identifier : (expression_statement "uStack_3b4 = 0;" (assignment_expression "uStack_3b4 = 0" identifier = number_literal) ;)) (expression_statement "ppMVar29 = &pMStack_3b8;" (assignment_expression "ppMVar29 = &pMStack_3b8" identifier = (pointer_expression "&pMStack_3b8" & identifier)) ;) (if_statement "if (pMVar33 != (MHD_Daemon *)0x0) goto LAB_0001bc98;" if (parenthesized_expression "(pMVar33 != (MHD_Daemon *)0x0)" ( (binary_expression "pMVar33 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001bc98;" goto statement_identifier ;)) (labeled_statement "LAB_0001be20:\n  set = (MHD_Daemon *)(auStack_3b0 + 0x14);" statement_identifier : (expression_statement "set = (MHD_Daemon *)(auStack_3b0 + 0x14);" (assignment_expression "set = (MHD_Daemon *)(auStack_3b0 + 0x14)" identifier = (cast_expression "(MHD_Daemon *)(auStack_3b0 + 0x14)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_3b0 + 0x14)" ( (binary_expression "auStack_3b0 + 0x14" identifier + number_literal) )))) ;)) (expression_statement "unaff_s6 = (MHD_Daemon *)auStack_31c;" (assignment_expression "unaff_s6 = (MHD_Daemon *)auStack_31c" identifier = (cast_expression "(MHD_Daemon *)auStack_31c" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pMVar26 = set;" (assignment_expression "pMVar26 = set" identifier = identifier) ;) (do_statement "do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n  } while (unaff_s6 != pMVar26);" do (compound_statement "{\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n  }" { (expression_statement "pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar26->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;" (assignment_expression "pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar26->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar26->default_handler_cls" & (field_expression "pMVar26->default_handler_cls" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(unaff_s6 != pMVar26)" ( (binary_expression "unaff_s6 != pMVar26" identifier != identifier) )) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)(auStack_31c + 0x80);" (assignment_expression "unaff_s7 = (MHD_Daemon *)(auStack_31c + 0x80)" identifier = (cast_expression "(MHD_Daemon *)(auStack_31c + 0x80)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_31c + 0x80)" ( (binary_expression "auStack_31c + 0x80" identifier + number_literal) )))) ;) (expression_statement "pMVar26 = unaff_s6;" (assignment_expression "pMVar26 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n    pMVar9 = unaff_s7;\n  } while (unaff_s7 != pMVar26);" do (compound_statement "{\n    pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;\n    pMVar9 = unaff_s7;\n  }" { (expression_statement "pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar26->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar26->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls;" (assignment_expression "pMVar26 = (MHD_Daemon *)&pMVar26->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar26->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar26->default_handler_cls" & (field_expression "pMVar26->default_handler_cls" identifier -> field_identifier)))) ;) (expression_statement "pMVar9 = unaff_s7;" (assignment_expression "pMVar9 = unaff_s7" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s7 != pMVar26)" ( (binary_expression "unaff_s7 != pMVar26" identifier != identifier) )) ;) (do_statement "do {\n    pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;\n  } while (&MStack_21c != pMVar9);" do (compound_statement "{\n    pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;\n    pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;\n  }" { (expression_statement "pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar9->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar9->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls;" (assignment_expression "pMVar9 = (MHD_Daemon *)&pMVar9->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar9->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar9->default_handler_cls" & (field_expression "pMVar9->default_handler_cls" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(&MStack_21c != pMVar9)" ( (binary_expression "&MStack_21c != pMVar9" (pointer_expression "&MStack_21c" & identifier) != identifier) )) ;) (expression_statement "MStack_3c0 = -1;" (assignment_expression "MStack_3c0 = -1" identifier = number_literal) ;) (if_statement "if (iVar3 != 1) {\n    if (iVar3 == 0) {\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    if (iVar3 == 0) {\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" { (if_statement "if (iVar3 == 0) {\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }\n    else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      pMVar28 = (MHD_Daemon *)0x400;\n      iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);\n      if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);\n      MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n    }" { (expression_statement "pMVar28 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar28 = (MHD_Daemon *)0x400" identifier = (cast_expression "(MHD_Daemon *)0x400" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400)" identifier (argument_list "((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                 (fd_set *)set,&MStack_3c0,0x400)" ( (field_expression "(connection_00->per_ip_connection_mutex).__data.__nusers" (field_expression "(connection_00->per_ip_connection_mutex).__data" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (cast_expression "(fd_set *)set" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&MStack_3c0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar15 = MStack_3c0 + 1;\n        goto LAB_0001be8c;\n      }" { (expression_statement "iVar15 = MStack_3c0 + 1;" (assignment_expression "iVar15 = MStack_3c0 + 1" identifier = (binary_expression "MStack_3c0 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0001be8c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c364:\n      p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);" statement_identifier : (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x348c)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x348c)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x348c" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);" (call_expression "MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p)" identifier (argument_list "((MHD_Daemon *)connection_00->cleanup_head,(char *)p)" ( (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier)) , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }) (else_clause "else {\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }" else (compound_statement "{\n      if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar15 = 0;\n      if (iVar3 != 3) goto LAB_0001be8c;\n    }" { (if_statement "if (iVar3 == 2) {\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n        pMVar28 = (MHD_Daemon *)0x400;\n        iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);\n        if (iVar3 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" { (expression_statement "pMVar28 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar28 = (MHD_Daemon *)0x400" identifier = (cast_expression "(MHD_Daemon *)0x400" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400)" identifier (argument_list "((connection_00->per_ip_connection_mutex).__data.__nusers,\n                                   (fd_set *)unaff_s7,&MStack_3c0,0x400)" ( (field_expression "(connection_00->per_ip_connection_mutex).__data.__nusers" (field_expression "(connection_00->per_ip_connection_mutex).__data" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (cast_expression "(fd_set *)unaff_s7" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&MStack_3c0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001c1ec;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001c1ec;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;) })) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (iVar3 != 3) goto LAB_0001be8c;" if (parenthesized_expression "(iVar3 != 3)" ( (binary_expression "iVar3 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0001be8c;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;) })) (expression_statement "pMVar28 = (MHD_Daemon *)0x400;" (assignment_expression "pMVar28 = (MHD_Daemon *)0x400" identifier = (cast_expression "(MHD_Daemon *)0x400" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400);" (assignment_expression "iVar3 = MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400)" identifier = (call_expression "MHD_add_to_fd_set_((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400)" identifier (argument_list "((connection_00->per_ip_connection_mutex).__data.__nusers,\n                             (fd_set *)unaff_s6,&MStack_3c0,0x400)" ( (field_expression "(connection_00->per_ip_connection_mutex).__data.__nusers" (field_expression "(connection_00->per_ip_connection_mutex).__data" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (cast_expression "(fd_set *)unaff_s6" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&MStack_3c0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1ec:\n  iVar15 = MStack_3c0 + 1;" statement_identifier : (expression_statement "iVar15 = MStack_3c0 + 1;" (assignment_expression "iVar15 = MStack_3c0 + 1" identifier = (binary_expression "MStack_3c0 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_0001be8c:\n  pMVar28 = unaff_s7;" statement_identifier : (expression_statement "pMVar28 = unaff_s7;" (assignment_expression "pMVar28 = unaff_s7" identifier = identifier) ;)) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6)" identifier = (call_expression "(**(code **)(pcVar39 + 0x23720))(iVar15,set,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar39 + 0x23720))" ( (pointer_expression "**(code **)(pcVar39 + 0x23720)" * (pointer_expression "*(code **)(pcVar39 + 0x23720)" * (cast_expression "(code **)(pcVar39 + 0x23720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23720)" ( (binary_expression "pcVar39 + 0x23720" identifier + number_literal) ))))) )) (argument_list "(iVar15,set,unaff_s6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n    puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n    pMVar26 = (MHD_Daemon *)*puVar14;\n    p = set;\n    unaff_s6 = pMVar26;\n    if (pMVar26 != (MHD_Daemon *)0x4) {\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n    pMVar26 = (MHD_Daemon *)*puVar14;\n    p = set;\n    unaff_s6 = pMVar26;\n    if (pMVar26 != (MHD_Daemon *)0x4) {\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" { (expression_statement "puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();" (assignment_expression "puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(uint *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar26 = (MHD_Daemon *)*puVar14;" (assignment_expression "pMVar26 = (MHD_Daemon *)*puVar14" identifier = (cast_expression "(MHD_Daemon *)*puVar14" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "p = set;" (assignment_expression "p = set" identifier = identifier) ;) (expression_statement "unaff_s6 = pMVar26;" (assignment_expression "unaff_s6 = pMVar26" identifier = identifier) ;) (if_statement "if (pMVar26 != (MHD_Daemon *)0x4) {\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }" if (parenthesized_expression "(pMVar26 != (MHD_Daemon *)0x4)" ( (binary_expression "pMVar26 != (MHD_Daemon *)0x4" identifier != (cast_expression "(MHD_Daemon *)0x4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;\n      pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);\n      pMVar30 = pMVar32;\n      goto LAB_0001c18c;\n    }" { (expression_statement "pMVar32 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "pMVar32 = (MHD_Daemon *)connection_00->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier))) ;) (expression_statement "pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26);" (assignment_expression "pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26)" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar26)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x236b0))(pMVar26)" (parenthesized_expression "(**(code **)(pcVar39 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236b0)" * (pointer_expression "*(code **)(pcVar39 + 0x236b0)" * (cast_expression "(code **)(pcVar39 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b0)" ( (binary_expression "pcVar39 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "(pMVar26)" ( identifier ))))) ;) (expression_statement "pMVar30 = pMVar32;" (assignment_expression "pMVar30 = pMVar32" identifier = identifier) ;) (goto_statement "goto LAB_0001c18c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001c1b0;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4]);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4])" identifier = (call_expression "(**(code **)(pcVar39 + 0x23708))((&(connection_00->per_ip_connection_mutex).__align)[4])" (parenthesized_expression "(**(code **)(pcVar39 + 0x23708))" ( (pointer_expression "**(code **)(pcVar39 + 0x23708)" * (pointer_expression "*(code **)(pcVar39 + 0x23708)" * (cast_expression "(code **)(pcVar39 + 0x23708)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23708)" ( (binary_expression "pcVar39 + 0x23708" identifier + number_literal) ))))) )) (argument_list "((&(connection_00->per_ip_connection_mutex).__align)[4])" ( (subscript_expression "(&(connection_00->per_ip_connection_mutex).__align)[4]" (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align)" ( (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) )) [ number_literal ]) )))) ;) (expression_statement "bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0;" (assignment_expression "bVar1 = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0" identifier = (binary_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)) != 0" (parenthesized_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14))" ( (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n          *(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)" (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU)" number_literal << (parenthesized_expression "((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU)" ( (binary_expression "(&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU" (subscript_expression "(&(connection_00->per_ip_connection_mutex).__align)[4]" (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align)" ( (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) )) [ number_literal ]) & number_literal) ))) & (pointer_expression "*(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)" * (cast_expression "(uint *)(auStack_3b0 + iVar3 * 4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_3b0 + iVar3 * 4 + 0x14)" ( (binary_expression "auStack_3b0 + iVar3 * 4 + 0x14" (binary_expression "auStack_3b0 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) ))))) )) != number_literal)) ;) (expression_statement "unaff_s6 = (MHD_Daemon *)(uint)bVar1;" (assignment_expression "unaff_s6 = (MHD_Daemon *)(uint)bVar1" identifier = (cast_expression "(MHD_Daemon *)(uint)bVar1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x23708))();" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x23708))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x23708))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23708))" ( (pointer_expression "**(code **)(pcVar39 + 0x23708)" * (pointer_expression "*(code **)(pcVar39 + 0x23708)" * (cast_expression "(code **)(pcVar39 + 0x23708)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23708)" ( (binary_expression "pcVar39 + 0x23708" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)) != 0;" (assignment_expression "write_ready = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)) != 0" identifier = (binary_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)) != 0" (parenthesized_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4))" ( (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4)" (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU)" number_literal << (parenthesized_expression "((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU)" ( (binary_expression "(&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU" (subscript_expression "(&(connection_00->per_ip_connection_mutex).__align)[4]" (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align)" ( (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) )) [ number_literal ]) & number_literal) ))) & (pointer_expression "*(uint *)(auStack_31c + iVar3 * 4)" * (cast_expression "(uint *)(auStack_31c + iVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_31c + iVar3 * 4)" ( (binary_expression "auStack_31c + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) ))))) )) != number_literal)) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)(uint)write_ready;" (assignment_expression "unaff_s7 = (MHD_Daemon *)(uint)write_ready" identifier = (cast_expression "(MHD_Daemon *)(uint)write_ready" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)write_ready" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x23708))();" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x23708))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x23708))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23708))" ( (pointer_expression "**(code **)(pcVar39 + 0x23708)" * (pointer_expression "*(code **)(pcVar39 + 0x23708)" * (cast_expression "(code **)(pcVar39 + 0x23708)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23708)" ( (binary_expression "pcVar39 + 0x23708" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0;" (assignment_expression "force_close = (1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0" identifier = (binary_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)) != 0" (parenthesized_expression "(1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80))" ( (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU) &\n                *(uint *)(auStack_31c + iVar3 * 4 + 0x80)" (binary_expression "1 << ((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU)" number_literal << (parenthesized_expression "((&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU)" ( (binary_expression "(&(connection_00->per_ip_connection_mutex).__align)[4] & 0x1fU" (subscript_expression "(&(connection_00->per_ip_connection_mutex).__align)[4]" (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align)" ( (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) )) [ number_literal ]) & number_literal) ))) & (pointer_expression "*(uint *)(auStack_31c + iVar3 * 4 + 0x80)" * (cast_expression "(uint *)(auStack_31c + iVar3 * 4 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_31c + iVar3 * 4 + 0x80)" ( (binary_expression "auStack_31c + iVar3 * 4 + 0x80" (binary_expression "auStack_31c + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) ))))) )) != number_literal)) ;) (expression_statement "pMVar28 = (MHD_Daemon *)(uint)force_close;" (assignment_expression "pMVar28 = (MHD_Daemon *)(uint)force_close" identifier = (cast_expression "(MHD_Daemon *)(uint)force_close" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)force_close" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "p = unaff_s6;" (assignment_expression "p = unaff_s6" identifier = identifier) ;) (expression_statement "pMVar26 = unaff_s7;" (assignment_expression "pMVar26 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar3 = call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close);" (assignment_expression "iVar3 = call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close)" identifier = (call_expression "call_handlers((MHD_Connection *)connection_00,bVar1,write_ready,force_close)" identifier (argument_list "((MHD_Connection *)connection_00,bVar1,write_ready,force_close)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8);" (assignment_expression "iVar3 = *(int *)((connection_00->cleanup_connection_mutex).__size + 8)" identifier = (pointer_expression "*(int *)((connection_00->cleanup_connection_mutex).__size + 8)" * (cast_expression "(int *)((connection_00->cleanup_connection_mutex).__size + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((connection_00->cleanup_connection_mutex).__size + 8)" ( (binary_expression "(connection_00->cleanup_connection_mutex).__size + 8" (field_expression "(connection_00->cleanup_connection_mutex).__size" (parenthesized_expression "(connection_00->cleanup_connection_mutex)" ( (field_expression "connection_00->cleanup_connection_mutex" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (if_statement "if (iVar3 != 0x14) goto LAB_0001bc2c;" if (parenthesized_expression "(iVar3 != 0x14)" ( (binary_expression "iVar3 != 0x14" identifier != number_literal) )) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;)) (labeled_statement "LAB_0001c01c:\n  if ((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }" statement_identifier : (if_statement "if ((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')) {\n    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }" if (parenthesized_expression "((daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0'))" ( (binary_expression "(daemon->notify_completed != (MHD_RequestCompletedCallback)0x0) &&\n     (pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')" (parenthesized_expression "(daemon->notify_completed != (MHD_RequestCompletedCallback)0x0)" ( (binary_expression "daemon->notify_completed != (MHD_RequestCompletedCallback)0x0" (field_expression "daemon->notify_completed" identifier -> field_identifier) != (cast_expression "(MHD_RequestCompletedCallback)0x0" ( (type_descriptor "MHD_RequestCompletedCallback" type_identifier) ) number_literal)) )) && (parenthesized_expression "(pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0')" ( (comma_expression "pMVar28 = (MHD_Daemon *)0x0,\n     *(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0'" (assignment_expression "pMVar28 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "*(char *)(&(connection_00->per_ip_connection_mutex).__align + 3) != '\0'" (pointer_expression "*(char *)(&(connection_00->per_ip_connection_mutex).__align + 3)" * (cast_expression "(char *)(&(connection_00->per_ip_connection_mutex).__align + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align + 3)" ( (binary_expression "&(connection_00->per_ip_connection_mutex).__align + 3" (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;\n    p = connection_00;\n    (*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);\n  }" { (expression_statement "pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail;" (assignment_expression "pMVar26 = (MHD_Daemon *)&connection_00->eready_urh_tail" identifier = (cast_expression "(MHD_Daemon *)&connection_00->eready_urh_tail" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection_00->eready_urh_tail" & (field_expression "connection_00->eready_urh_tail" identifier -> field_identifier)))) ;) (expression_statement "p = connection_00;" (assignment_expression "p = connection_00" identifier = identifier) ;) (expression_statement "(*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK);" (call_expression "(*daemon->notify_completed)\n              (daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK)" (parenthesized_expression "(*daemon->notify_completed)" ( (pointer_expression "*daemon->notify_completed" * (field_expression "daemon->notify_completed" identifier -> field_identifier)) )) (argument_list "(daemon->notify_completed_cls,(MHD_Connection *)connection_00,(void **)pMVar26,\n               MHD_REQUEST_TERMINATED_COMPLETED_OK)" ( (field_expression "daemon->notify_completed_cls" identifier -> field_identifier) , (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(void **)pMVar26" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , identifier ))) ;) }))) (expression_statement "pMVar4 = connection_00->cleanup_head;" (assignment_expression "pMVar4 = connection_00->cleanup_head" identifier = (field_expression "connection_00->cleanup_head" identifier -> field_identifier)) ;) (expression_statement "*(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0;" (assignment_expression "*(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3) = 0" (pointer_expression "*(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3)" * (cast_expression "(undefined1 *)(&(connection_00->per_ip_connection_mutex).__align + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&(connection_00->per_ip_connection_mutex).__align + 3)" ( (binary_expression "&(connection_00->per_ip_connection_mutex).__align + 3" (pointer_expression "&(connection_00->per_ip_connection_mutex).__align" & (field_expression "(connection_00->per_ip_connection_mutex).__align" (parenthesized_expression "(connection_00->per_ip_connection_mutex)" ( (field_expression "connection_00->per_ip_connection_mutex" identifier -> field_identifier) )) . field_identifier)) + number_literal) )))) = number_literal) ;) (expression_statement "uVar21 = pMVar4->suspended_dummy;" (assignment_expression "uVar21 = pMVar4->suspended_dummy" identifier = (field_expression "pMVar4->suspended_dummy" identifier -> field_identifier)) ;) (expression_statement "unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown;" (assignment_expression "unaff_s6 = *(MHD_Daemon **)&connection_00->shutdown" identifier = (pointer_expression "*(MHD_Daemon **)&connection_00->shutdown" * (cast_expression "(MHD_Daemon **)&connection_00->shutdown" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&connection_00->shutdown" & (field_expression "connection_00->shutdown" identifier -> field_identifier))))) ;) (if_statement "if ((uVar21 & 0x42) == 2) {\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));\n    daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    } while (pMVar30 == (MHD_Daemon *)0x4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n    pMVar26 = pMVar30;\n    MHD_DLOG(daemon,(char *)p);\n  }\n  else if ((uVar21 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }" if (parenthesized_expression "((uVar21 & 0x42) == 2)" ( (binary_expression "(uVar21 & 0x42) == 2" (parenthesized_expression "(uVar21 & 0x42)" ( (binary_expression "uVar21 & 0x42" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));\n    daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    } while (pMVar30 == (MHD_Daemon *)0x4);\n    daemon = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);\n    pMVar26 = pMVar30;\n    MHD_DLOG(daemon,(char *)p);\n  }" { (expression_statement "uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);" (assignment_expression "uVar25 = *(undefined4 *)(pcVar39 + 0x234e0)" identifier = (pointer_expression "*(undefined4 *)(pcVar39 + 0x234e0)" * (cast_expression "(undefined4 *)(pcVar39 + 0x234e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234e0)" ( (binary_expression "pcVar39 + 0x234e0" identifier + number_literal) ))))) ;) (expression_statement "pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4));" (assignment_expression "pMVar33 = (MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4))" identifier = (cast_expression "(MHD_Daemon *)(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4))" ( (binary_expression "&DAT_00007e20 + *(int *)(pcVar39 + 0x234b4)" (pointer_expression "&DAT_00007e20" & identifier) + (pointer_expression "*(int *)(pcVar39 + 0x234b4)" * (cast_expression "(int *)(pcVar39 + 0x234b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b4)" ( (binary_expression "pcVar39 + 0x234b4" identifier + number_literal) ))))) )))) ;) (expression_statement "daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0);" (assignment_expression "daemon = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234e0) + -0x7be0)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234e0) + -0x7be0)" ( (binary_expression "*(int *)(pcVar39 + 0x234e0) + -0x7be0" (pointer_expression "*(int *)(pcVar39 + 0x234e0)" * (cast_expression "(int *)(pcVar39 + 0x234e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234e0)" ( (binary_expression "pcVar39 + 0x234e0" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    } while (pMVar30 == (MHD_Daemon *)0x4);" do (compound_statement "{\n      while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }\n      if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }\n      p = unaff_s7;\n      pMVar26 = pMVar20;\n      pMVar28 = pMVar30;\n      iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);\n      if (-1 < iVar3) goto LAB_0001c4bc;\n      puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();\n      pMVar30 = (MHD_Daemon *)*puVar14;\n    }" { (while_statement "while( true ) {\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        unaff_s7 = &MStack_21c;\n        pMVar32 = unaff_s7;\n        if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;\n        do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);\n        do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);\n        do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);\n        MStack_3bc = -1;\n        pMVar26 = pMVar20;\n        pMVar28 = pMVar30;\n        _Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);\n        if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }\n        if (MStack_3bc != -1) break;\nLAB_0001c4bc:\n        pMVar28 = pMVar30;\n        urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);\n        process_urh((MHD_UpgradeResponseHandle *)unaff_s6);\n        p = unaff_s7;\n        pMVar26 = pMVar20;\n      }" { (expression_statement "unaff_s7 = &MStack_21c;" (assignment_expression "unaff_s7 = &MStack_21c" identifier = (pointer_expression "&MStack_21c" & identifier)) ;) (expression_statement "pMVar32 = unaff_s7;" (assignment_expression "pMVar32 = unaff_s7" identifier = identifier) ;) (if_statement "if ((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)) goto LAB_0001c074;" if (parenthesized_expression "((((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))" ( (binary_expression "(((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)) &&\n           (unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)" (parenthesized_expression "(((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0))" ( (binary_expression "((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n            (unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)" (parenthesized_expression "((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0))" ( (binary_expression "(unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n             (pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)" (parenthesized_expression "(unaff_s6->eready_head == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s6->eready_head == (MHD_Connection *)0x0" (field_expression "unaff_s6->eready_head" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0)" ( (comma_expression "pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment,\n             unaff_s6->eready_tail == (MHD_Connection *)0x0" (assignment_expression "pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment" identifier = (cast_expression "(MHD_Daemon *)&MStack_21c.pool_increment" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_21c.pool_increment" & (field_expression "MStack_21c.pool_increment" identifier . field_identifier)))) , (binary_expression "unaff_s6->eready_tail == (MHD_Connection *)0x0" (field_expression "unaff_s6->eready_tail" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0" (field_expression "unaff_s6->eready_urh_head" identifier -> field_identifier) == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0" (field_expression "unaff_s6->eready_urh_tail" identifier -> field_identifier) == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;)) (do_statement "do {\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        } while (pMVar20 != pMVar32);" do (compound_statement "{\n          pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;\n          pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;\n          pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;\n          pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;\n          psVar12 = (size_t *)pMVar20;\n        }" { (expression_statement "pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment;" (assignment_expression "pMVar20 = (MHD_Daemon *)&MStack_21c.pool_increment" identifier = (cast_expression "(MHD_Daemon *)&MStack_21c.pool_increment" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_21c.pool_increment" & (field_expression "MStack_21c.pool_increment" identifier . field_identifier)))) ;) (expression_statement "pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "pMVar32->default_handler = (MHD_AccessHandlerCallback)0x0" (field_expression "pMVar32->default_handler" identifier -> field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls;" (assignment_expression "pMVar32 = (MHD_Daemon *)&pMVar32->default_handler_cls" identifier = (cast_expression "(MHD_Daemon *)&pMVar32->default_handler_cls" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar32->default_handler_cls" & (field_expression "pMVar32->default_handler_cls" identifier -> field_identifier)))) ;) (expression_statement "pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client;" (assignment_expression "pMVar30 = (MHD_Daemon *)&MStack_21c.strict_for_client" identifier = (cast_expression "(MHD_Daemon *)&MStack_21c.strict_for_client" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_21c.strict_for_client" & (field_expression "MStack_21c.strict_for_client" identifier . field_identifier)))) ;) (expression_statement "psVar12 = (size_t *)pMVar20;" (assignment_expression "psVar12 = (size_t *)pMVar20" identifier = (cast_expression "(size_t *)pMVar20" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pMVar20 != pMVar32)" ( (binary_expression "pMVar20 != pMVar32" identifier != identifier) )) ;) (do_statement "do {\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        } while (pMVar30 != (MHD_Daemon *)psVar12);" do (compound_statement "{\n          *psVar12 = 0;\n          psVar12 = psVar12 + 1;\n          ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;\n        }" { (expression_statement "*psVar12 = 0;" (assignment_expression "*psVar12 = 0" (pointer_expression "*psVar12" * identifier) = number_literal) ;) (expression_statement "psVar12 = psVar12 + 1;" (assignment_expression "psVar12 = psVar12 + 1" identifier = (binary_expression "psVar12 + 1" identifier + number_literal)) ;) (expression_statement "ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30;" (assignment_expression "ppMVar13 = (MHD_UpgradeResponseHandle **)pMVar30" identifier = (cast_expression "(MHD_UpgradeResponseHandle **)pMVar30" ( (type_descriptor "MHD_UpgradeResponseHandle **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }) while (parenthesized_expression "(pMVar30 != (MHD_Daemon *)psVar12)" ( (binary_expression "pMVar30 != (MHD_Daemon *)psVar12" identifier != (cast_expression "(MHD_Daemon *)psVar12" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (do_statement "do {\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        } while ((MHD_Daemon **)ppMVar13 != &pMStack_9c);" do (compound_statement "{\n          *ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;\n          ppMVar13 = ppMVar13 + 1;\n          puVar36 = (undefined1 *)0xffffffff;\n        }" { (expression_statement "*ppMVar13 = (MHD_UpgradeResponseHandle *)0x0;" (assignment_expression "*ppMVar13 = (MHD_UpgradeResponseHandle *)0x0" (pointer_expression "*ppMVar13" * identifier) = (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppMVar13 = ppMVar13 + 1;" (assignment_expression "ppMVar13 = ppMVar13 + 1" identifier = (binary_expression "ppMVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar36 = (undefined1 *)0xffffffff;" (assignment_expression "puVar36 = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) while (parenthesized_expression "((MHD_Daemon **)ppMVar13 != &pMStack_9c)" ( (binary_expression "(MHD_Daemon **)ppMVar13 != &pMStack_9c" (cast_expression "(MHD_Daemon **)ppMVar13" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&pMStack_9c" & identifier)) )) ;) (expression_statement "MStack_3bc = -1;" (assignment_expression "MStack_3bc = -1" identifier = number_literal) ;) (expression_statement "pMVar26 = pMVar20;" (assignment_expression "pMVar26 = pMVar20" identifier = identifier) ;) (expression_statement "pMVar28 = pMVar30;" (assignment_expression "pMVar28 = pMVar30" identifier = identifier) ;) (expression_statement "_Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400);" (assignment_expression "_Var18 = urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400)" identifier = (call_expression "urh_to_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,\n                              (fd_set *)pMVar20,(fd_set *)pMVar30,&MStack_3bc,0x400)" ( (cast_expression "(MHD_UpgradeResponseHandle *)unaff_s6" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)unaff_s7" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar20" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar30" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&MStack_3bc" & identifier) , number_literal )))) ;) (if_statement "if (CONCAT31(extraout_var,_Var18) == 0) {\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }" if (parenthesized_expression "(CONCAT31(extraout_var,_Var18) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var18) == 0" (call_expression "CONCAT31(extraout_var,_Var18)" identifier (argument_list "(extraout_var,_Var18)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n          p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);\n          MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);\n          goto LAB_0001c074;\n        }" { (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3434)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x3434)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x3434" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p);" (call_expression "MHD_DLOG((MHD_Daemon *)connection_00->cleanup_head,(char *)p)" identifier (argument_list "((MHD_Daemon *)connection_00->cleanup_head,(char *)p)" ( (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier)) , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;) })) (if_statement "if (MStack_3bc != -1) break;" if (parenthesized_expression "(MStack_3bc != -1)" ( (binary_expression "MStack_3bc != -1" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001c4bc:\n        pMVar28 = pMVar30;" statement_identifier : (expression_statement "pMVar28 = pMVar30;" (assignment_expression "pMVar28 = pMVar30" identifier = identifier) ;)) (expression_statement "urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30);" (call_expression "urh_from_fdset((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6,(fd_set *)unaff_s7,(fd_set *)pMVar20,\n                       (fd_set *)pMVar30)" ( (cast_expression "(MHD_UpgradeResponseHandle *)unaff_s6" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)unaff_s7" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar20" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar30" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "process_urh((MHD_UpgradeResponseHandle *)unaff_s6);" (call_expression "process_urh((MHD_UpgradeResponseHandle *)unaff_s6)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6)" ( (cast_expression "(MHD_UpgradeResponseHandle *)unaff_s6" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "p = unaff_s7;" (assignment_expression "p = unaff_s7" identifier = identifier) ;) (expression_statement "pMVar26 = pMVar20;" (assignment_expression "pMVar26 = pMVar20" identifier = identifier) ;) })) (if_statement "if ((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)) {\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }" if (parenthesized_expression "((*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head))" ( (binary_expression "(*(char *)&connection_00->per_ip_connection_limit != '\0') &&\n         ((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)" (parenthesized_expression "(*(char *)&connection_00->per_ip_connection_limit != '\0')" ( (binary_expression "*(char *)&connection_00->per_ip_connection_limit != '\0'" (pointer_expression "*(char *)&connection_00->per_ip_connection_limit" * (cast_expression "(char *)&connection_00->per_ip_connection_limit" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection_00->per_ip_connection_limit" & (field_expression "connection_00->per_ip_connection_limit" identifier -> field_identifier)))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)" ( (binary_expression "(MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head" (cast_expression "(MHD_Connection *)unaff_s6->eready_urh_head" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s6->eready_urh_head" identifier -> field_identifier)) < (field_expression "unaff_s6->eready_head" identifier -> field_identifier)) ))) )) (compound_statement "{\n        auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;\n        auStack_3b0._4_4_ = (void *)0x0;\n      }" { (expression_statement "auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0;" (assignment_expression "auStack_3b0._0_4_ = (MHD_AccessHandlerCallback)0x0" (field_expression "auStack_3b0._0_4_" identifier . field_identifier) = (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) ;) (expression_statement "auStack_3b0._4_4_ = (void *)0x0;" (assignment_expression "auStack_3b0._4_4_ = (void *)0x0" (field_expression "auStack_3b0._4_4_" identifier . field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "p = unaff_s7;" (assignment_expression "p = unaff_s7" identifier = identifier) ;) (expression_statement "pMVar26 = pMVar20;" (assignment_expression "pMVar26 = pMVar20" identifier = identifier) ;) (expression_statement "pMVar28 = pMVar30;" (assignment_expression "pMVar28 = pMVar30" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1)" identifier = (call_expression "(**(code **)(pcVar39 + 0x23720))(MStack_3bc + 1)" (parenthesized_expression "(**(code **)(pcVar39 + 0x23720))" ( (pointer_expression "**(code **)(pcVar39 + 0x23720)" * (pointer_expression "*(code **)(pcVar39 + 0x23720)" * (cast_expression "(code **)(pcVar39 + 0x23720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23720)" ( (binary_expression "pcVar39 + 0x23720" identifier + number_literal) ))))) )) (argument_list "(MStack_3bc + 1)" ( (binary_expression "MStack_3bc + 1" identifier + number_literal) )))) ;) (if_statement "if (-1 < iVar3) goto LAB_0001c4bc;" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (goto_statement "goto LAB_0001c4bc;" goto statement_identifier ;)) (expression_statement "puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))();" (assignment_expression "puVar14 = (uint *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(uint *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar30 = (MHD_Daemon *)*puVar14;" (assignment_expression "pMVar30 = (MHD_Daemon *)*puVar14" identifier = (cast_expression "(MHD_Daemon *)*puVar14" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) }) while (parenthesized_expression "(pMVar30 == (MHD_Daemon *)0x4)" ( (binary_expression "pMVar30 == (MHD_Daemon *)0x4" identifier == (cast_expression "(MHD_Daemon *)0x4" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "daemon = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "daemon = (MHD_Daemon *)connection_00->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier))) ;) (expression_statement "pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30);" (assignment_expression "pMVar28 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30)" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))(pMVar30)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x236b0))(pMVar30)" (parenthesized_expression "(**(code **)(pcVar39 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236b0)" * (pointer_expression "*(code **)(pcVar39 + 0x236b0)" * (cast_expression "(code **)(pcVar39 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b0)" ( (binary_expression "pcVar39 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "(pMVar30)" ( identifier ))))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3470)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x3470)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x3470" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pMVar26 = pMVar30;" (assignment_expression "pMVar26 = pMVar30" identifier = identifier) ;) (expression_statement "MHD_DLOG(daemon,(char *)p);" (call_expression "MHD_DLOG(daemon,(char *)p)" identifier (argument_list "(daemon,(char *)p)" ( identifier , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }) (else_clause "else if ((uVar21 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }" else (if_statement "if ((uVar21 & 2) != 0) {\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }" if (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    p = (MHD_Daemon *)&MStack_21c.strict_for_client;\n    MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;\n    pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));\n    MStack_21c.priority_cache = (gnutls_priority_t)0x0;\n    daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));\n    uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);\n    MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);\n    MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;\n    do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);\n    pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;\n    pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();\n    p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);\n    MHD_DLOG(pMVar30,(char *)p);\n  }" { (expression_statement "p = (MHD_Daemon *)&MStack_21c.strict_for_client;" (assignment_expression "p = (MHD_Daemon *)&MStack_21c.strict_for_client" identifier = (cast_expression "(MHD_Daemon *)&MStack_21c.strict_for_client" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&MStack_21c.strict_for_client" & (field_expression "MStack_21c.strict_for_client" identifier . field_identifier)))) ;) (expression_statement "MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0;" (assignment_expression "MStack_21c.urh_head = (MHD_UpgradeResponseHandle *)0x0" (field_expression "MStack_21c.urh_head" identifier . field_identifier) = (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4));" (assignment_expression "pMVar33 = (MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4))" identifier = (cast_expression "(MHD_Daemon *)(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4))" ( (binary_expression "&DAT_00007b40 + *(int *)(pcVar39 + 0x234b4)" (pointer_expression "&DAT_00007b40" & identifier) + (pointer_expression "*(int *)(pcVar39 + 0x234b4)" * (cast_expression "(int *)(pcVar39 + 0x234b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b4)" ( (binary_expression "pcVar39 + 0x234b4" identifier + number_literal) ))))) )))) ;) (expression_statement "MStack_21c.priority_cache = (gnutls_priority_t)0x0;" (assignment_expression "MStack_21c.priority_cache = (gnutls_priority_t)0x0" (field_expression "MStack_21c.priority_cache" identifier . field_identifier) = (cast_expression "(gnutls_priority_t)0x0" ( (type_descriptor "gnutls_priority_t" type_identifier) ) number_literal)) ;) (expression_statement "daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4));" (assignment_expression "daemon = (MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4))" identifier = (cast_expression "(MHD_Daemon *)(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4))" ( (binary_expression "&DAT_00007c40 + *(int *)(pcVar39 + 0x234b4)" (pointer_expression "&DAT_00007c40" & identifier) + (pointer_expression "*(int *)(pcVar39 + 0x234b4)" * (cast_expression "(int *)(pcVar39 + 0x234b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b4)" ( (binary_expression "pcVar39 + 0x234b4" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar25 = *(undefined4 *)(pcVar39 + 0x234e0);" (assignment_expression "uVar25 = *(undefined4 *)(pcVar39 + 0x234e0)" identifier = (pointer_expression "*(undefined4 *)(pcVar39 + 0x234e0)" * (cast_expression "(undefined4 *)(pcVar39 + 0x234e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234e0)" ( (binary_expression "pcVar39 + 0x234e0" identifier + number_literal) ))))) ;) (expression_statement "MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4);" (assignment_expression "MStack_21c.strict_for_client = *(int *)(unaff_s6->default_handler + 0xa4)" (field_expression "MStack_21c.strict_for_client" identifier . field_identifier) = (pointer_expression "*(int *)(unaff_s6->default_handler + 0xa4)" * (cast_expression "(int *)(unaff_s6->default_handler + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6->default_handler + 0xa4)" ( (binary_expression "unaff_s6->default_handler + 0xa4" (field_expression "unaff_s6->default_handler" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc;" (assignment_expression "MStack_21c.urh_tail = (MHD_UpgradeResponseHandle *)unaff_s6->apc" (field_expression "MStack_21c.urh_tail" identifier . field_identifier) = (cast_expression "(MHD_UpgradeResponseHandle *)unaff_s6->apc" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s6->apc" identifier -> field_identifier))) ;) (do_statement "do {\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    } while (*piVar11 == 4);" do (compound_statement "{\n      while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }\n      piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();\n    }" { (while_statement "while( true ) {\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;\n        urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }\n        iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);\n        if (iVar3 < 0) break;\n        pMVar32 = unaff_s6;\n        urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);\n        process_urh((MHD_UpgradeResponseHandle *)pMVar32);\n      }" { (if_statement "if (((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))\n        goto LAB_0001c074;" if (parenthesized_expression "(((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))))" ( (binary_expression "((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)) &&\n           ((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)))" (parenthesized_expression "((unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0))" ( (binary_expression "(unaff_s6->eready_head == (MHD_Connection *)0x0) &&\n            (unaff_s6->eready_tail == (MHD_Connection *)0x0)" (parenthesized_expression "(unaff_s6->eready_head == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s6->eready_head == (MHD_Connection *)0x0" (field_expression "unaff_s6->eready_head" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s6->eready_tail == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s6->eready_tail == (MHD_Connection *)0x0" (field_expression "unaff_s6->eready_tail" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)))" ( (parenthesized_expression "(unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0))" ( (binary_expression "unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0 &&\n            (pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)" (binary_expression "unaff_s6->eready_urh_head == (MHD_UpgradeResponseHandle *)0x0" (field_expression "unaff_s6->eready_urh_head" identifier -> field_identifier) == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0)" ( (comma_expression "pMVar30 = p, unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0" (assignment_expression "pMVar30 = p" identifier = identifier) , (binary_expression "unaff_s6->eready_urh_tail == (MHD_UpgradeResponseHandle *)0x0" (field_expression "unaff_s6->eready_urh_tail" identifier -> field_identifier) == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;)) (expression_statement "urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);" (call_expression "urh_update_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p)" ( (cast_expression "(MHD_UpgradeResponseHandle *)unaff_s6" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(pollfd *)p" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (*(char *)&connection_00->per_ip_connection_limit == '\0') {\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }\n        else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }" if (parenthesized_expression "(*(char *)&connection_00->per_ip_connection_limit == '\0')" ( (binary_expression "*(char *)&connection_00->per_ip_connection_limit == '\0'" (pointer_expression "*(char *)&connection_00->per_ip_connection_limit" * (cast_expression "(char *)&connection_00->per_ip_connection_limit" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection_00->per_ip_connection_limit" & (field_expression "connection_00->per_ip_connection_limit" identifier -> field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pMVar26 = (MHD_Daemon *)0xffffffff;\n        }" { (expression_statement "pMVar26 = (MHD_Daemon *)0xffffffff;" (assignment_expression "pMVar26 = (MHD_Daemon *)0xffffffff" identifier = (cast_expression "(MHD_Daemon *)0xffffffff" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }" else (compound_statement "{\n          pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);\n        }" { (expression_statement "pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1);" (assignment_expression "pMVar26 = (MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1)" identifier = (cast_expression "(MHD_Daemon *)\n                    (((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1)" ( (binary_expression "((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head) - 1" (parenthesized_expression "((MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head)" ( (binary_expression "(MHD_Connection *)unaff_s6->eready_urh_head < unaff_s6->eready_head" (cast_expression "(MHD_Connection *)unaff_s6->eready_urh_head" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s6->eready_urh_head" identifier -> field_identifier)) < (field_expression "unaff_s6->eready_head" identifier -> field_identifier)) )) - number_literal) )))) ;) }))) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x236e0))(p,2)" identifier = (call_expression "(**(code **)(pcVar39 + 0x236e0))(p,2)" (parenthesized_expression "(**(code **)(pcVar39 + 0x236e0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236e0)" * (pointer_expression "*(code **)(pcVar39 + 0x236e0)" * (cast_expression "(code **)(pcVar39 + 0x236e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236e0)" ( (binary_expression "pcVar39 + 0x236e0" identifier + number_literal) ))))) )) (argument_list "(p,2)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 < 0) break;" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "pMVar32 = unaff_s6;" (assignment_expression "pMVar32 = unaff_s6" identifier = identifier) ;) (expression_statement "urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p);" (call_expression "urh_from_pollfd((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p)" identifier (argument_list "((MHD_UpgradeResponseHandle *)unaff_s6,(pollfd *)p)" ( (cast_expression "(MHD_UpgradeResponseHandle *)unaff_s6" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(pollfd *)p" ( (type_descriptor "pollfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "process_urh((MHD_UpgradeResponseHandle *)pMVar32);" (call_expression "process_urh((MHD_UpgradeResponseHandle *)pMVar32)" identifier (argument_list "((MHD_UpgradeResponseHandle *)pMVar32)" ( (cast_expression "(MHD_UpgradeResponseHandle *)pMVar32" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))();" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar39 + 0x23660))()" identifier = (cast_expression "(int *)(**(code **)(pcVar39 + 0x23660))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x23660))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x23660))" ( (pointer_expression "**(code **)(pcVar39 + 0x23660)" * (pointer_expression "*(code **)(pcVar39 + 0x23660)" * (cast_expression "(code **)(pcVar39 + 0x23660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23660)" ( (binary_expression "pcVar39 + 0x23660" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(*piVar11 == 4)" ( (binary_expression "*piVar11 == 4" (pointer_expression "*piVar11" * identifier) == number_literal) )) ;) (expression_statement "pMVar30 = (MHD_Daemon *)connection_00->cleanup_head;" (assignment_expression "pMVar30 = (MHD_Daemon *)connection_00->cleanup_head" identifier = (cast_expression "(MHD_Daemon *)connection_00->cleanup_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connection_00->cleanup_head" identifier -> field_identifier))) ;) (expression_statement "pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))();" (assignment_expression "pMVar26 = (MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))()" identifier = (cast_expression "(MHD_Daemon *)(**(code **)(pcVar39 + 0x236b0))()" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x236b0))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x236b0))" ( (pointer_expression "**(code **)(pcVar39 + 0x236b0)" * (pointer_expression "*(code **)(pcVar39 + 0x236b0)" * (cast_expression "(code **)(pcVar39 + 0x236b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x236b0)" ( (binary_expression "pcVar39 + 0x236b0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450);" (assignment_expression "p = (MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x234b8) + -0x3450)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x234b8) + -0x3450)" ( (binary_expression "*(int *)(pcVar39 + 0x234b8) + -0x3450" (pointer_expression "*(int *)(pcVar39 + 0x234b8)" * (cast_expression "(int *)(pcVar39 + 0x234b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x234b8)" ( (binary_expression "pcVar39 + 0x234b8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "MHD_DLOG(pMVar30,(char *)p);" (call_expression "MHD_DLOG(pMVar30,(char *)p)" identifier (argument_list "(pMVar30,(char *)p)" ( identifier , (cast_expression "(char *)p" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })))) (labeled_statement "LAB_0001c074:\n  MHD_connection_finish_forward_((MHD_Connection *)connection_00);" statement_identifier : (expression_statement "MHD_connection_finish_forward_((MHD_Connection *)connection_00);" (call_expression "MHD_connection_finish_forward_((MHD_Connection *)connection_00)" identifier (argument_list "((MHD_Connection *)connection_00)" ( (cast_expression "(MHD_Connection *)connection_00" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x23698);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x23698)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x23698)" * (cast_expression "(code **)(pcVar39 + 0x23698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23698)" ( (binary_expression "pcVar39 + 0x23698" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1;" (assignment_expression "*(undefined1 *)(*(int *)&connection_00->shutdown + 0x51) = 1" (pointer_expression "*(undefined1 *)(*(int *)&connection_00->shutdown + 0x51)" * (cast_expression "(undefined1 *)(*(int *)&connection_00->shutdown + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)&connection_00->shutdown + 0x51)" ( (binary_expression "*(int *)&connection_00->shutdown + 0x51" (pointer_expression "*(int *)&connection_00->shutdown" * (cast_expression "(int *)&connection_00->shutdown" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection_00->shutdown" & (field_expression "connection_00->shutdown" identifier -> field_identifier)))) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar40)(connection_00);" (call_expression "(*pcVar40)(connection_00)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(connection_00)" ( identifier ))) ;) (labeled_statement "LAB_0001bd0c:\n  if (pMStack_9c == (MHD_Daemon *)*piVar6) {\n    return;\n  }" statement_identifier : (if_statement "if (pMStack_9c == (MHD_Daemon *)*piVar6) {\n    return;\n  }" if (parenthesized_expression "(pMStack_9c == (MHD_Daemon *)*piVar6)" ( (binary_expression "pMStack_9c == (MHD_Daemon *)*piVar6" identifier == (cast_expression "(MHD_Daemon *)*piVar6" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar39 = *(code **)(pcVar39 + 0x23714);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + 0x23714)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x23714)" * (cast_expression "(code **)(pcVar39 + 0x23714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x23714)" ( (binary_expression "pcVar39 + 0x23714" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = internal_run_from_select;" (assignment_expression "pcVar40 = internal_run_from_select" identifier = identifier) ;) (expression_statement "pMVar32 = pMStack_9c;" (assignment_expression "pMVar32 = pMStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(pcVar39 + 0x22c64);" (assignment_expression "piVar6 = *(int **)(pcVar39 + 0x22c64)" identifier = (pointer_expression "*(int **)(pcVar39 + 0x22c64)" * (cast_expression "(int **)(pcVar39 + 0x22c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c64)" ( (binary_expression "pcVar39 + 0x22c64" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (pMVar32->itc).fd;" (assignment_expression "iVar3 = (pMVar32->itc).fd" identifier = (field_expression "(pMVar32->itc).fd" (parenthesized_expression "(pMVar32->itc)" ( (field_expression "pMVar32->itc" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pMStackY_41c = (MHD_Daemon *)*piVar6;" (assignment_expression "pMStackY_41c = (MHD_Daemon *)*piVar6" identifier = (cast_expression "(MHD_Daemon *)*piVar6" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "pMVar32->data_already_pending = false;" (assignment_expression "pMVar32->data_already_pending = false" (field_expression "pMVar32->data_already_pending" identifier -> field_identifier) = false) ;) (expression_statement "pMStackY_418 = pMVar30;" (assignment_expression "pMStackY_418 = pMVar30" identifier = identifier) ;) (expression_statement "pMStackY_414 = daemon;" (assignment_expression "pMStackY_414 = daemon" identifier = identifier) ;) (expression_statement "pMStackY_410 = pMVar33;" (assignment_expression "pMStackY_410 = pMVar33" identifier = identifier) ;) (expression_statement "uStackY_40c = uVar25;" (assignment_expression "uStackY_40c = uVar25" identifier = identifier) ;) (expression_statement "psStackY_408 = (size_t *)pMVar20;" (assignment_expression "psStackY_408 = (size_t *)pMVar20" identifier = (cast_expression "(size_t *)pMVar20" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStackY_404 = puVar36;" (assignment_expression "puStackY_404 = puVar36" identifier = identifier) ;) (expression_statement "pMStackY_400 = unaff_s6;" (assignment_expression "pMStackY_400 = unaff_s6" identifier = identifier) ;) (expression_statement "pMStackY_3fc = unaff_s7;" (assignment_expression "pMStackY_3fc = unaff_s7" identifier = identifier) ;) (expression_statement "pMStackY_3f8 = connection_00;" (assignment_expression "pMStackY_3f8 = connection_00" identifier = identifier) ;) (expression_statement "pcStackY_3f4 = pcVar40;" (assignment_expression "pcStackY_3f4 = pcVar40" identifier = identifier) ;) (if_statement "if (iVar3 != -1) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))();\n    uVar21 = (pMVar32->itc).fd;\n    if ((int)uVar21 < 0) {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    if (uVar19 != 0) {\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }\n  }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))();\n    uVar21 = (pMVar32->itc).fd;\n    if ((int)uVar21 < 0) {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    if (uVar19 != 0) {\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x22c24))();" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x22c24))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar39 + 0x22c24)" * (pointer_expression "*(code **)(pcVar39 + 0x22c24)" * (cast_expression "(code **)(pcVar39 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c24)" ( (binary_expression "pcVar39 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = (pMVar32->itc).fd;" (assignment_expression "uVar21 = (pMVar32->itc).fd" identifier = (field_expression "(pMVar32->itc).fd" (parenthesized_expression "(pMVar32->itc)" ( (field_expression "pMVar32->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((int)uVar21 < 0) {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }\n    else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }" if (parenthesized_expression "((int)uVar21 < 0)" ( (binary_expression "(int)uVar21 < 0" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }" { (expression_statement "uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))) & (subscript_expression "(uint)(&p->default_handler)[iVar3]" (call_expression "(uint)(&p->default_handler)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&p->default_handler)" ( (pointer_expression "&p->default_handler" & (field_expression "p->default_handler" identifier -> field_identifier)) ))) [ identifier ]))) ;) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22c90);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22c90)" * (cast_expression "(code **)(pcVar39 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c90)" ( (binary_expression "pcVar39 + 0x22c90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }" else (compound_statement "{\n      uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n      pcVar40 = *(code **)(pcVar39 + 0x22c90);\n    }" { (expression_statement "uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar19 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))) & (subscript_expression "(uint)(&p->default_handler)[iVar3]" (call_expression "(uint)(&p->default_handler)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&p->default_handler)" ( (pointer_expression "&p->default_handler" & (field_expression "p->default_handler" identifier -> field_identifier)) ))) [ identifier ]))) ;) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22c90);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22c90)" * (cast_expression "(code **)(pcVar39 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c90)" ( (binary_expression "pcVar39 + 0x22c90" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar19 != 0) {\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      (*pcVar40)(uVar21,auStackY_428,8);\n    }" { (expression_statement "(*pcVar40)(uVar21,auStackY_428,8);" (call_expression "(*pcVar40)(uVar21,auStackY_428,8)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(uVar21,auStackY_428,8)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "uVar21 = pMVar32->listen_fd;" (assignment_expression "uVar21 = pMVar32->listen_fd" identifier = (field_expression "pMVar32->listen_fd" identifier -> field_identifier)) ;) (if_statement "if ((uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false)) {\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n    if ((int)uVar21 < 0) {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar21 != 0) {\n      MHD_accept_connection(pMVar32);\n    }\n  }" if (parenthesized_expression "((uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false))" ( (binary_expression "(uVar21 != 0xffffffff) && (pMVar32->was_quiesced == false)" (parenthesized_expression "(uVar21 != 0xffffffff)" ( (binary_expression "uVar21 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "(pMVar32->was_quiesced == false)" ( (binary_expression "pMVar32->was_quiesced == false" (field_expression "pMVar32->was_quiesced" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n    if ((int)uVar21 < 0) {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    if (uVar21 != 0) {\n      MHD_accept_connection(pMVar32);\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x22c24))(uVar21)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22c24))(uVar21)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar39 + 0x22c24)" * (pointer_expression "*(code **)(pcVar39 + 0x22c24)" * (cast_expression "(code **)(pcVar39 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c24)" ( (binary_expression "pcVar39 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier )))) ;) (if_statement "if ((int)uVar21 < 0) {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }\n    else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" if (parenthesized_expression "((int)uVar21 < 0)" ( (binary_expression "(int)uVar21 < 0" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" { (expression_statement "uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))) & (subscript_expression "(uint)(&p->default_handler)[iVar3]" (call_expression "(uint)(&p->default_handler)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&p->default_handler)" ( (pointer_expression "&p->default_handler" & (field_expression "p->default_handler" identifier -> field_identifier)) ))) [ identifier ]))) ;) }) (else_clause "else {\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" else (compound_statement "{\n      uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];\n    }" { (expression_statement "uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3];" (assignment_expression "uVar21 = 1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" identifier = (binary_expression "1 << (uVar21 & 0x1f) & (uint)(&p->default_handler)[iVar3]" (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))) & (subscript_expression "(uint)(&p->default_handler)[iVar3]" (call_expression "(uint)(&p->default_handler)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&p->default_handler)" ( (pointer_expression "&p->default_handler" & (field_expression "p->default_handler" identifier -> field_identifier)) ))) [ identifier ]))) ;) }))) (if_statement "if (uVar21 != 0) {\n      MHD_accept_connection(pMVar32);\n    }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n      MHD_accept_connection(pMVar32);\n    }" { (expression_statement "MHD_accept_connection(pMVar32);" (call_expression "MHD_accept_connection(pMVar32)" identifier (argument_list "(pMVar32)" ( identifier ))) ;) })) })) (if_statement "if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar32->connections_tail != (MHD_Connection *)0x0)) {\n    iVar3 = *(int *)(pcVar39 + 0x229fc);\n    pMVar4 = pMVar32->connections_tail;\n    do {\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    } while (pMVar22 != (MHD_Connection *)0x0);\n  }" if (parenthesized_expression "(((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar32->connections_tail != (MHD_Connection *)0x0))" ( (binary_expression "((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) &&\n     (pMVar32->connections_tail != (MHD_Connection *)0x0)" (parenthesized_expression "((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(pMVar32->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar32->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar32->options" identifier -> field_identifier) & identifier) )) == identifier) )) && (parenthesized_expression "(pMVar32->connections_tail != (MHD_Connection *)0x0)" ( (binary_expression "pMVar32->connections_tail != (MHD_Connection *)0x0" (field_expression "pMVar32->connections_tail" identifier -> field_identifier) != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    iVar3 = *(int *)(pcVar39 + 0x229fc);\n    pMVar4 = pMVar32->connections_tail;\n    do {\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    } while (pMVar22 != (MHD_Connection *)0x0);\n  }" { (expression_statement "iVar3 = *(int *)(pcVar39 + 0x229fc);" (assignment_expression "iVar3 = *(int *)(pcVar39 + 0x229fc)" identifier = (pointer_expression "*(int *)(pcVar39 + 0x229fc)" * (cast_expression "(int *)(pcVar39 + 0x229fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x229fc)" ( (binary_expression "pcVar39 + 0x229fc" identifier + number_literal) ))))) ;) (expression_statement "pMVar4 = pMVar32->connections_tail;" (assignment_expression "pMVar4 = pMVar32->connections_tail" identifier = (field_expression "pMVar32->connections_tail" identifier -> field_identifier)) ;) (do_statement "do {\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    } while (pMVar22 != (MHD_Connection *)0x0);" do (compound_statement "{\n      uVar21 = pMVar4->socket_fd;\n      pMVar22 = pMVar4->prev;\n      if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }\n      pMVar4 = pMVar22;\n    }" { (expression_statement "uVar21 = pMVar4->socket_fd;" (assignment_expression "uVar21 = pMVar4->socket_fd" identifier = (field_expression "pMVar4->socket_fd" identifier -> field_identifier)) ;) (expression_statement "pMVar22 = pMVar4->prev;" (assignment_expression "pMVar22 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;) (if_statement "if (uVar21 != 0xffffffff) {\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }" if (parenthesized_expression "(uVar21 != 0xffffffff)" ( (binary_expression "uVar21 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));\n        p_Var23 = (&p->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        p_Var27 = (&pMVar26->default_handler)[iVar15];\n        iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);\n        (*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);\n      }" { (expression_statement "iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);" (assignment_expression "iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22c24))(uVar21)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar39 + 0x22c24)" * (pointer_expression "*(code **)(pcVar39 + 0x22c24)" * (cast_expression "(code **)(pcVar39 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c24)" ( (binary_expression "pcVar39 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier )))) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f));" (assignment_expression "unaff_s7 = (MHD_Daemon *)(1 << (uVar21 & 0x1f))" identifier = (cast_expression "(MHD_Daemon *)(1 << (uVar21 & 0x1f))" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1 << (uVar21 & 0x1f))" ( (binary_expression "1 << (uVar21 & 0x1f)" number_literal << (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))) )))) ;) (expression_statement "p_Var23 = (&p->default_handler)[iVar15];" (assignment_expression "p_Var23 = (&p->default_handler)[iVar15]" identifier = (subscript_expression "(&p->default_handler)[iVar15]" (parenthesized_expression "(&p->default_handler)" ( (pointer_expression "&p->default_handler" & (field_expression "p->default_handler" identifier -> field_identifier)) )) [ identifier ])) ;) (expression_statement "iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);" (assignment_expression "iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22c24))(uVar21)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar39 + 0x22c24)" * (pointer_expression "*(code **)(pcVar39 + 0x22c24)" * (cast_expression "(code **)(pcVar39 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c24)" ( (binary_expression "pcVar39 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier )))) ;) (expression_statement "p_Var27 = (&pMVar26->default_handler)[iVar15];" (assignment_expression "p_Var27 = (&pMVar26->default_handler)[iVar15]" identifier = (subscript_expression "(&pMVar26->default_handler)[iVar15]" (parenthesized_expression "(&pMVar26->default_handler)" ( (pointer_expression "&pMVar26->default_handler" & (field_expression "pMVar26->default_handler" identifier -> field_identifier)) )) [ identifier ])) ;) (expression_statement "iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21);" (assignment_expression "iVar15 = (**(code **)(pcVar39 + 0x22c24))(uVar21)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22c24))(uVar21)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar39 + 0x22c24)" * (pointer_expression "*(code **)(pcVar39 + 0x22c24)" * (cast_expression "(code **)(pcVar39 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c24)" ( (binary_expression "pcVar39 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(uVar21)" ( identifier )))) ;) (expression_statement "(*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0);" (call_expression "(*(code *)(iVar3 + -0x7974))\n                  (pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0)" (parenthesized_expression "(*(code *)(iVar3 + -0x7974))" ( (pointer_expression "*(code *)(iVar3 + -0x7974)" * (cast_expression "(code *)(iVar3 + -0x7974)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x7974)" ( (binary_expression "iVar3 + -0x7974" identifier + number_literal) )))) )) (argument_list "(pMVar4,((uint)unaff_s7 & (uint)p_Var23) != 0,\n                   ((uint)unaff_s7 & (uint)p_Var27) != 0,\n                   ((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0)" ( identifier , (binary_expression "((uint)unaff_s7 & (uint)p_Var23) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)p_Var23)" ( (binary_expression "(uint)unaff_s7 & (uint)p_Var23" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)p_Var23" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)p_Var27) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)p_Var27)" ( (binary_expression "(uint)unaff_s7 & (uint)p_Var27" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)p_Var27" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15])" ( (binary_expression "(uint)unaff_s7 & (uint)(&pMVar28->default_handler)[iVar15]" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (subscript_expression "(uint)(&pMVar28->default_handler)[iVar15]" (call_expression "(uint)(&pMVar28->default_handler)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&pMVar28->default_handler)" ( (pointer_expression "&pMVar28->default_handler" & (field_expression "pMVar28->default_handler" identifier -> field_identifier)) ))) [ identifier ])) )) != number_literal) ))) ;) })) (expression_statement "pMVar4 = pMVar22;" (assignment_expression "pMVar4 = pMVar22" identifier = identifier) ;) }) while (parenthesized_expression "(pMVar22 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n  }" if (parenthesized_expression "(pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar32->urh_tail" identifier -> field_identifier) != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n  }" { (expression_statement "unaff_s7 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s7 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar17 = pMVar32->urh_tail;" (assignment_expression "pMVar17 = pMVar32->urh_tail" identifier = (field_expression "pMVar32->urh_tail" identifier -> field_identifier)) ;) (do_statement "do {\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);" do (compound_statement "{\n      pMVar31 = pMVar17->prev;\n      urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);\n      process_urh(pMVar17);\n      if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }\n      pMVar17 = pMVar31;\n    }" { (expression_statement "pMVar31 = pMVar17->prev;" (assignment_expression "pMVar31 = pMVar17->prev" identifier = (field_expression "pMVar17->prev" identifier -> field_identifier)) ;) (expression_statement "urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28);" (call_expression "urh_from_fdset(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28)" identifier (argument_list "(pMVar17,(fd_set *)p,(fd_set *)pMVar26,(fd_set *)pMVar28)" ( identifier , (cast_expression "(fd_set *)p" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar26" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(fd_set *)pMVar28" ( (type_descriptor "fd_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "process_urh(pMVar17);" (call_expression "process_urh(pMVar17)" identifier (argument_list "(pMVar17)" ( identifier ))) ;) (if_statement "if ((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)) {\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }" if (parenthesized_expression "((((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0))" ( (binary_expression "(((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)) && (pMVar17->out_buffer_used == 0)" (parenthesized_expression "(((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0))" ( (binary_expression "((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)) &&\n          (pMVar17->in_buffer_used == 0)" (parenthesized_expression "((pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0))" ( (binary_expression "(pMVar17->in_buffer_size == 0) && (pMVar17->out_buffer_size == 0)" (parenthesized_expression "(pMVar17->in_buffer_size == 0)" ( (binary_expression "pMVar17->in_buffer_size == 0" (field_expression "pMVar17->in_buffer_size" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(pMVar17->out_buffer_size == 0)" ( (binary_expression "pMVar17->out_buffer_size == 0" (field_expression "pMVar17->out_buffer_size" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pMVar17->in_buffer_used == 0)" ( (binary_expression "pMVar17->in_buffer_used == 0" (field_expression "pMVar17->in_buffer_used" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(pMVar17->out_buffer_used == 0)" ( (binary_expression "pMVar17->out_buffer_used == 0" (field_expression "pMVar17->out_buffer_used" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n        MHD_connection_finish_forward_(pMVar17->connection);\n        pcVar40 = *(code **)(pcVar39 + 0x22bb4);\n        pMVar17->clean_ready = true;\n        (*pcVar40)(pMVar17->connection);\n      }" { (expression_statement "MHD_connection_finish_forward_(pMVar17->connection);" (call_expression "MHD_connection_finish_forward_(pMVar17->connection)" identifier (argument_list "(pMVar17->connection)" ( (field_expression "pMVar17->connection" identifier -> field_identifier) ))) ;) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22bb4);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22bb4)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22bb4)" * (cast_expression "(code **)(pcVar39 + 0x22bb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22bb4)" ( (binary_expression "pcVar39 + 0x22bb4" identifier + number_literal) ))))) ;) (expression_statement "pMVar17->clean_ready = true;" (assignment_expression "pMVar17->clean_ready = true" (field_expression "pMVar17->clean_ready" identifier -> field_identifier) = true) ;) (expression_statement "(*pcVar40)(pMVar17->connection);" (call_expression "(*pcVar40)(pMVar17->connection)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(pMVar17->connection)" ( (field_expression "pMVar17->connection" identifier -> field_identifier) ))) ;) })) (expression_statement "pMVar17 = pMVar31;" (assignment_expression "pMVar17 = pMVar31" identifier = identifier) ;) }) while (parenthesized_expression "(pMVar31 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar31 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "MHD_cleanup_connections(pMVar32);" (call_expression "MHD_cleanup_connections(pMVar32)" identifier (argument_list "(pMVar32)" ( identifier ))) ;) (if_statement "if (pMStackY_41c == (MHD_Daemon *)*piVar6) {\n    return;\n  }" if (parenthesized_expression "(pMStackY_41c == (MHD_Daemon *)*piVar6)" ( (binary_expression "pMStackY_41c == (MHD_Daemon *)*piVar6" identifier == (cast_expression "(MHD_Daemon *)*piVar6" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcVar39 + 0x22c30);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + 0x22c30)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22c30)" * (cast_expression "(code **)(pcVar39 + 0x22c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22c30)" ( (binary_expression "pcVar39 + 0x22c30" identifier + number_literal) ))))) ;) (expression_statement "pMVar32 = pMStackY_41c;" (assignment_expression "pMVar32 = pMStackY_41c" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "MVar38 = pMVar32->options;" (assignment_expression "MVar38 = pMVar32->options" identifier = (field_expression "pMVar32->options" identifier -> field_identifier)) ;) (expression_statement "MVar37 = MVar38 & MHD_USE_THREAD_PER_CONNECTION;" (assignment_expression "MVar37 = MVar38 & MHD_USE_THREAD_PER_CONNECTION" identifier = (binary_expression "MVar38 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier)) ;) (expression_statement "pMVar34 = (MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE);" (assignment_expression "pMVar34 = (MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE)" identifier = (cast_expression "(MHD_mutex_ *)(MVar38 & MHD_ALLOW_UPGRADE)" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(MVar38 & MHD_ALLOW_UPGRADE)" ( (binary_expression "MVar38 & MHD_ALLOW_UPGRADE" identifier & identifier) )))) ;) (expression_statement "MVar16 = MVar38;" (assignment_expression "MVar16 = MVar38" identifier = identifier) ;) (if_statement "if (pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0) {\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar16 = pMVar32->options;\n  }" if (parenthesized_expression "(pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar32->urh_tail != (MHD_UpgradeResponseHandle *)0x0" (field_expression "pMVar32->urh_tail" identifier -> field_identifier) != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s7 = (MHD_Daemon *)0x1;\n    pMVar17 = pMVar32->urh_tail;\n    do {\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);\n    p = (MHD_Daemon *)0x0;\n    MVar16 = pMVar32->options;\n  }" { (expression_statement "unaff_s7 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s7 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar17 = pMVar32->urh_tail;" (assignment_expression "pMVar17 = pMVar32->urh_tail" identifier = (field_expression "pMVar32->urh_tail" identifier -> field_identifier)) ;) (do_statement "do {\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    } while (pMVar31 != (MHD_UpgradeResponseHandle *)0x0);" do (compound_statement "{\n      pMVar31 = pMVar17->prev;\n      process_urh(pMVar17);\n      MHD_connection_finish_forward_(pMVar17->connection);\n      pMVar17->clean_ready = true;\n      (**(code **)(pcVar39 + 0x22818))(pMVar17->connection);\n      pMVar17 = pMVar31;\n    }" { (expression_statement "pMVar31 = pMVar17->prev;" (assignment_expression "pMVar31 = pMVar17->prev" identifier = (field_expression "pMVar17->prev" identifier -> field_identifier)) ;) (expression_statement "process_urh(pMVar17);" (call_expression "process_urh(pMVar17)" identifier (argument_list "(pMVar17)" ( identifier ))) ;) (expression_statement "MHD_connection_finish_forward_(pMVar17->connection);" (call_expression "MHD_connection_finish_forward_(pMVar17->connection)" identifier (argument_list "(pMVar17->connection)" ( (field_expression "pMVar17->connection" identifier -> field_identifier) ))) ;) (expression_statement "pMVar17->clean_ready = true;" (assignment_expression "pMVar17->clean_ready = true" (field_expression "pMVar17->clean_ready" identifier -> field_identifier) = true) ;) (expression_statement "(**(code **)(pcVar39 + 0x22818))(pMVar17->connection);" (call_expression "(**(code **)(pcVar39 + 0x22818))(pMVar17->connection)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22818))" ( (pointer_expression "**(code **)(pcVar39 + 0x22818)" * (pointer_expression "*(code **)(pcVar39 + 0x22818)" * (cast_expression "(code **)(pcVar39 + 0x22818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22818)" ( (binary_expression "pcVar39 + 0x22818" identifier + number_literal) ))))) )) (argument_list "(pMVar17->connection)" ( (field_expression "pMVar17->connection" identifier -> field_identifier) ))) ;) (expression_statement "pMVar17 = pMVar31;" (assignment_expression "pMVar17 = pMVar31" identifier = identifier) ;) }) while (parenthesized_expression "(pMVar31 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar31 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "p = (MHD_Daemon *)0x0;" (assignment_expression "p = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MVar16 = pMVar32->options;" (assignment_expression "MVar16 = pMVar32->options" identifier = (field_expression "pMVar32->options" identifier -> field_identifier)) ;) })) (if_statement "if ((MVar16 & 0x2000) != MHD_NO_FLAG) {\n    pMVar32->resuming = true;\n    resume_suspended_connections(pMVar32);\n  }" if (parenthesized_expression "((MVar16 & 0x2000) != MHD_NO_FLAG)" ( (binary_expression "(MVar16 & 0x2000) != MHD_NO_FLAG" (parenthesized_expression "(MVar16 & 0x2000)" ( (binary_expression "MVar16 & 0x2000" identifier & number_literal) )) != identifier) )) (compound_statement "{\n    pMVar32->resuming = true;\n    resume_suspended_connections(pMVar32);\n  }" { (expression_statement "pMVar32->resuming = true;" (assignment_expression "pMVar32->resuming = true" (field_expression "pMVar32->resuming" identifier -> field_identifier) = true) ;) (expression_statement "resume_suspended_connections(pMVar32);" (call_expression "resume_suspended_connections(pMVar32)" identifier (argument_list "(pMVar32)" ( identifier ))) ;) })) (expression_statement "pMVar35 = &pMVar32->cleanup_connection_mutex;" (assignment_expression "pMVar35 = &pMVar32->cleanup_connection_mutex" identifier = (pointer_expression "&pMVar32->cleanup_connection_mutex" & (field_expression "pMVar32->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22884))(pMVar35)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22884))" ( (pointer_expression "**(code **)(pcVar39 + 0x22884)" * (pointer_expression "*(code **)(pcVar39 + 0x22884)" * (cast_expression "(code **)(pcVar39 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22884)" ( (binary_expression "pcVar39 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pMVar35)" ( identifier )))) ;) (expression_statement "uVar25 = 0x191e;" (assignment_expression "uVar25 = 0x191e" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0001cf0c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;)) (if_statement "if (pMVar34 == (MHD_mutex_ *)0x0) goto LAB_0001cb94;" if (parenthesized_expression "(pMVar34 == (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar34 == (MHD_mutex_ *)0x0" identifier == (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cb94;" goto statement_identifier ;)) (expression_statement "pMVar4 = pMVar32->suspended_connections_tail;" (assignment_expression "pMVar4 = pMVar32->suspended_connections_tail" identifier = (field_expression "pMVar32->suspended_connections_tail" identifier -> field_identifier)) ;) (if_statement "if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cba0;" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cba0;" goto statement_identifier ;)) (expression_statement "pMVar17 = pMVar4->urh;" (assignment_expression "pMVar17 = pMVar4->urh" identifier = (field_expression "pMVar4->urh" identifier -> field_identifier)) ;) (expression_statement "MVar38 = MVar38 & MHD_USE_SSL;" (assignment_expression "MVar38 = MVar38 & MHD_USE_SSL" identifier = (binary_expression "MVar38 & MHD_USE_SSL" identifier & identifier)) ;) (if_statement "if (pMVar17 == (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb6c;" if (parenthesized_expression "(pMVar17 == (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar17 == (MHD_UpgradeResponseHandle *)0x0" identifier == (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cb6c;" goto statement_identifier ;)) (expression_statement "p = (MHD_Daemon *)0x1;" (assignment_expression "p = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014)" identifier = (cast_expression "(MHD_Daemon *)(*(int *)(pcVar39 + 0x22638) + -0x4014)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x22638) + -0x4014)" ( (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0001cb18:\n  if (MVar38 == MHD_NO_FLAG) goto LAB_0001cd7c;" statement_identifier : (if_statement "if (MVar38 == MHD_NO_FLAG) goto LAB_0001cd7c;" if (parenthesized_expression "(MVar38 == MHD_NO_FLAG)" ( (binary_expression "MVar38 == MHD_NO_FLAG" identifier == identifier) )) (goto_statement "goto LAB_0001cd7c;" goto statement_identifier ;))) (if_statement "if (MVar37 == MHD_NO_FLAG) {\n    if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n    pMVar4->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }" if (parenthesized_expression "(MVar37 == MHD_NO_FLAG)" ( (binary_expression "MVar37 == MHD_NO_FLAG" identifier == identifier) )) (compound_statement "{\n    if (pMVar17->was_closed == false) goto LAB_0001cdb0;\n    pMVar4->urh->was_closed = SUB41(p,0);\n    goto LAB_0001cd9c;\n  }" { (if_statement "if (pMVar17->was_closed == false) goto LAB_0001cdb0;" if (parenthesized_expression "(pMVar17->was_closed == false)" ( (binary_expression "pMVar17->was_closed == false" (field_expression "pMVar17->was_closed" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "pMVar4->urh->was_closed = SUB41(p,0);" (assignment_expression "pMVar4->urh->was_closed = SUB41(p,0)" (field_expression "pMVar4->urh->was_closed" (field_expression "pMVar4->urh" identifier -> field_identifier) -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0001cd9c;" goto statement_identifier ;) })) (if_statement "if (pMVar17->clean_ready == false) {\n    (**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);\n    goto LAB_0001cb54;\n  }" if (parenthesized_expression "(pMVar17->clean_ready == false)" ( (binary_expression "pMVar17->clean_ready == false" (field_expression "pMVar17->clean_ready" identifier -> field_identifier) == false) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);\n    goto LAB_0001cb54;\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2);" (call_expression "(**(code **)(pcVar39 + 0x22744))((pMVar17->app).socket,2)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22744))" ( (pointer_expression "**(code **)(pcVar39 + 0x22744)" * (pointer_expression "*(code **)(pcVar39 + 0x22744)" * (cast_expression "(code **)(pcVar39 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22744)" ( (binary_expression "pcVar39 + 0x22744" identifier + number_literal) ))))) )) (argument_list "((pMVar17->app).socket,2)" ( (field_expression "(pMVar17->app).socket" (parenthesized_expression "(pMVar17->app)" ( (field_expression "pMVar17->app" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (goto_statement "goto LAB_0001cb54;" goto statement_identifier ;) })) (if_statement "if (pMVar17->was_closed == false) goto LAB_0001cdb0;" if (parenthesized_expression "(pMVar17->was_closed == false)" ( (binary_expression "pMVar17->was_closed == false" (field_expression "pMVar17->was_closed" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "pMVar4->urh->was_closed = SUB41(p,0);" (assignment_expression "pMVar4->urh->was_closed = SUB41(p,0)" (field_expression "pMVar4->urh->was_closed" (field_expression "pMVar4->urh" identifier -> field_identifier) -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (labeled_statement "LAB_0001cb4c:\n  pMVar4->resuming = SUB41(p,0);" statement_identifier : (expression_statement "pMVar4->resuming = SUB41(p,0);" (assignment_expression "pMVar4->resuming = SUB41(p,0)" (field_expression "pMVar4->resuming" identifier -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;)) (expression_statement "pMVar32->resuming = SUB41(p,0);" (assignment_expression "pMVar32->resuming = SUB41(p,0)" (field_expression "pMVar32->resuming" identifier -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (labeled_statement "LAB_0001cb54:\n  pMVar4 = pMVar4->prev;" statement_identifier : (expression_statement "pMVar4 = pMVar4->prev;" (assignment_expression "pMVar4 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;)) (if_statement "if (pMVar4 != (MHD_Connection *)0x0) {\n    pMVar17 = pMVar4->urh;\n    if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar25 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);\n  }" if (parenthesized_expression "(pMVar4 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pMVar17 = pMVar4->urh;\n    if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar25 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);\n  }" { (expression_statement "pMVar17 = pMVar4->urh;" (assignment_expression "pMVar17 = pMVar4->urh" identifier = (field_expression "pMVar4->urh" identifier -> field_identifier)) ;) (if_statement "if (pMVar17 != (MHD_UpgradeResponseHandle *)0x0) goto LAB_0001cb18;" if (parenthesized_expression "(pMVar17 != (MHD_UpgradeResponseHandle *)0x0)" ( (binary_expression "pMVar17 != (MHD_UpgradeResponseHandle *)0x0" identifier != (cast_expression "(MHD_UpgradeResponseHandle *)0x0" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cb18;" goto statement_identifier ;)) (labeled_statement "LAB_0001cb6c:\n    uVar25 = 0x1929;" statement_identifier : (expression_statement "uVar25 = 0x1929;" (assignment_expression "uVar25 = 0x1929" identifier = number_literal) ;)) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    } while (pMVar32->suspended_connections_head != (MHD_Connection *)0x0);" do (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar25 = 0x1948;\n    }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x2264c)" ( (binary_expression "pcVar39 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,uVar25,\n                 *(int *)(pcVar39 + 0x22638) + -0x33d0)" ( (pointer_expression "**(undefined4 **)(pcVar39 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar39 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22644)" ( (binary_expression "pcVar39 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001cb94:\n      uVar25 = 0x1948;" statement_identifier : (expression_statement "uVar25 = 0x1948;" (assignment_expression "uVar25 = 0x1948" identifier = number_literal) ;)) }) while (parenthesized_expression "(pMVar32->suspended_connections_head != (MHD_Connection *)0x0)" ( (binary_expression "pMVar32->suspended_connections_head != (MHD_Connection *)0x0" (field_expression "pMVar32->suspended_connections_head" identifier -> field_identifier) != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0001cba0:\n  pMVar4 = pMVar32->connections_tail;" statement_identifier : (expression_statement "pMVar4 = pMVar32->connections_tail;" (assignment_expression "pMVar4 = pMVar32->connections_tail" identifier = (field_expression "pMVar32->connections_tail" identifier -> field_identifier)) ;)) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22918);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22918)" * (cast_expression "(code **)(pcVar39 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22918)" ( (binary_expression "pcVar39 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (pMVar4 != (MHD_Connection *)0x0) {\n    do {\n      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    } while (pMVar4 != (MHD_Connection *)0x0);\n    pcVar40 = *(code **)(pcVar39 + 0x22918);\n    pMVar4 = (MHD_Connection *)0x0;\n    if ((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }\n  }" if (parenthesized_expression "(pMVar4 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 != (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 **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    } while (pMVar4 != (MHD_Connection *)0x0);\n    pcVar40 = *(code **)(pcVar39 + 0x22918);\n    pMVar4 = (MHD_Connection *)0x0;\n    if ((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }\n  }" { (do_statement "do {\n      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    } while (pMVar4 != (MHD_Connection *)0x0);" do (compound_statement "{\n      (**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);\n      pMVar4 = pMVar4->prev;\n    }" { (expression_statement "(**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2);" (call_expression "(**(code **)(pcVar39 + 0x22744))(pMVar4->socket_fd,2)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22744))" ( (pointer_expression "**(code **)(pcVar39 + 0x22744)" * (pointer_expression "*(code **)(pcVar39 + 0x22744)" * (cast_expression "(code **)(pcVar39 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22744)" ( (binary_expression "pcVar39 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(pMVar4->socket_fd,2)" ( (field_expression "pMVar4->socket_fd" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "pMVar4 = pMVar4->prev;" (assignment_expression "pMVar4 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pMVar4 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22918);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22918)" * (cast_expression "(code **)(pcVar39 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22918)" ( (binary_expression "pcVar39 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "pMVar4 = (MHD_Connection *)0x0;" (assignment_expression "pMVar4 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)) {\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }" if (parenthesized_expression "((MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0))" ( (binary_expression "(MVar37 != MHD_NO_FLAG) &&\n       (pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)" (parenthesized_expression "(MVar37 != MHD_NO_FLAG)" ( (binary_expression "MVar37 != MHD_NO_FLAG" identifier != identifier) )) && (parenthesized_expression "(pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0)" ( (comma_expression "pMVar4 = pMVar32->connections_tail, pMVar4 != (MHD_Connection *)0x0" (assignment_expression "pMVar4 = pMVar32->connections_tail" identifier = (field_expression "pMVar32->connections_tail" identifier -> field_identifier)) , (binary_expression "pMVar4 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      p = (MHD_Daemon *)0x1;\n      do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);\n    }" { (expression_statement "p = (MHD_Daemon *)0x1;" (assignment_expression "p = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      } while (pMVar4 != (MHD_Connection *)0x0);" do (compound_statement "{\n        while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }\n        pMVar4 = pMVar4->prev;\n      }" { (while_statement "while (pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false) {\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }" while (parenthesized_expression "(pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false)" ( (comma_expression "pcVar40 = *(code **)(pcVar39 + 0x22918), pMVar4->thread_joined == false" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22918)" * (cast_expression "(code **)(pcVar39 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22918)" ( (binary_expression "pcVar39 + 0x22918" identifier + number_literal) ))))) , (binary_expression "pMVar4->thread_joined == false" (field_expression "pMVar4->thread_joined" identifier -> field_identifier) == false)) )) (compound_statement "{\n          iVar3 = (*pcVar40)(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);\n          if (iVar3 != 0) goto LAB_0001cf30;\n          iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);\n          if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          pMVar4->thread_joined = true;\n          pMVar4 = pMVar32->connections_tail;\n          pcVar40 = *(code **)(pcVar39 + 0x22918);\n          if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;\n        }" { (expression_statement "iVar3 = (*pcVar40)(pMVar35);" (assignment_expression "iVar3 = (*pcVar40)(pMVar35)" identifier = (call_expression "(*pcVar40)(pMVar35)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(pMVar35)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar25 = 0x195e;\n            goto LAB_0001cd58;\n          }" { (expression_statement "uVar25 = 0x195e;" (assignment_expression "uVar25 = 0x195e" identifier = number_literal) ;) (goto_statement "goto LAB_0001cd58;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0)" identifier = (call_expression "(**(code **)(pcVar39 + 0x2277c))((pMVar4->pid).handle,0)" (parenthesized_expression "(**(code **)(pcVar39 + 0x2277c))" ( (pointer_expression "**(code **)(pcVar39 + 0x2277c)" * (pointer_expression "*(code **)(pcVar39 + 0x2277c)" * (cast_expression "(code **)(pcVar39 + 0x2277c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x2277c)" ( (binary_expression "pcVar39 + 0x2277c" identifier + number_literal) ))))) )) (argument_list "((pMVar4->pid).handle,0)" ( (field_expression "(pMVar4->pid).handle" (parenthesized_expression "(pMVar4->pid)" ( (field_expression "pMVar4->pid" identifier -> field_identifier) )) . field_identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_0001cf30;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar35)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22884))(pMVar35)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22884))" ( (pointer_expression "**(code **)(pcVar39 + 0x22884)" * (pointer_expression "*(code **)(pcVar39 + 0x22884)" * (cast_expression "(code **)(pcVar39 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22884)" ( (binary_expression "pcVar39 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pMVar35)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar25 = 0x1961;\n            goto LAB_0001cf0c;\n          }" { (expression_statement "uVar25 = 0x1961;" (assignment_expression "uVar25 = 0x1961" identifier = number_literal) ;) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;) })) (expression_statement "pMVar4->thread_joined = true;" (assignment_expression "pMVar4->thread_joined = true" (field_expression "pMVar4->thread_joined" identifier -> field_identifier) = true) ;) (expression_statement "pMVar4 = pMVar32->connections_tail;" (assignment_expression "pMVar4 = pMVar32->connections_tail" identifier = (field_expression "pMVar32->connections_tail" identifier -> field_identifier)) ;) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22918);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22918)" * (cast_expression "(code **)(pcVar39 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22918)" ( (binary_expression "pcVar39 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (pMVar4 == (MHD_Connection *)0x0) goto LAB_0001cc48;" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cc48;" goto statement_identifier ;)) })) (expression_statement "pMVar4 = pMVar4->prev;" (assignment_expression "pMVar4 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pMVar4 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) (labeled_statement "LAB_0001cc48:\n  iVar3 = (*pcVar40)(pMVar35);" statement_identifier : (expression_statement "iVar3 = (*pcVar40)(pMVar35);" (assignment_expression "iVar3 = (*pcVar40)(pMVar35)" identifier = (call_expression "(*pcVar40)(pMVar35)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(pMVar35)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) {\n    if (pMVar34 != (MHD_mutex_ *)0x0) {\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }\n    do {\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    } while (iVar3 == 0);\n    uVar25 = 0x11dd;\n  }\n  else {\n    uVar25 = 0x196b;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pMVar34 != (MHD_mutex_ *)0x0) {\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }\n    do {\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    } while (iVar3 == 0);\n    uVar25 = 0x11dd;\n  }" { (if_statement "if (pMVar34 != (MHD_mutex_ *)0x0) {\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }" if (parenthesized_expression "(pMVar34 != (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar34 != (MHD_mutex_ *)0x0" identifier != (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pMVar32->resuming = true;\n      resume_suspended_connections(pMVar32);\n    }" { (expression_statement "pMVar32->resuming = true;" (assignment_expression "pMVar32->resuming = true" (field_expression "pMVar32->resuming" identifier -> field_identifier) = true) ;) (expression_statement "resume_suspended_connections(pMVar32);" (call_expression "resume_suspended_connections(pMVar32)" identifier (argument_list "(pMVar32)" ( identifier ))) ;) })) (do_statement "do {\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    } while (iVar3 == 0);" do (compound_statement "{\n      pMVar4 = pMVar32->connections_tail;\n      while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }\n      pMVar34 = &p->cleanup_connection_mutex;\n      MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);\n      iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);\n      if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pMVar22 = pMVar4->prevX;\n      pMVar24 = pMVar4->nextX;\n      if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }\n      pcVar40 = *(code **)(pcVar39 + 0x22918);\n      p->cleanup_head = pMVar4;\n      iVar3 = (*pcVar40)(pMVar34);\n    }" { (expression_statement "pMVar4 = pMVar32->connections_tail;" (assignment_expression "pMVar4 = pMVar32->connections_tail" identifier = (field_expression "pMVar32->connections_tail" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }\n        if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;\n        p = pMVar4->daemon;\n        if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;\n        MHD_connection_mark_closed_(pMVar4);\n        pMVar4 = pMVar32->connections_tail;\n      }" { (if_statement "if (pMVar4 == (MHD_Connection *)0x0) {\n          MHD_cleanup_connections(pMVar32);\n          return;\n        }" if (parenthesized_expression "(pMVar4 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar4 == (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(pMVar32);\n          return;\n        }" { (expression_statement "MHD_cleanup_connections(pMVar32);" (call_expression "MHD_cleanup_connections(pMVar32)" identifier (argument_list "(pMVar32)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)) goto LAB_0001cf30;" if (parenthesized_expression "(((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false))" ( (binary_expression "((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) &&\n           (pMVar4->thread_joined == false)" (parenthesized_expression "((pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(pMVar32->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(pMVar32->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "pMVar32->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "pMVar32->options" identifier -> field_identifier) & identifier) )) != identifier) )) && (parenthesized_expression "(pMVar4->thread_joined == false)" ( (binary_expression "pMVar4->thread_joined == false" (field_expression "pMVar4->thread_joined" identifier -> field_identifier) == false) ))) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "p = pMVar4->daemon;" (assignment_expression "p = pMVar4->daemon" identifier = (field_expression "pMVar4->daemon" identifier -> field_identifier)) ;) (if_statement "if ((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) break;" if (parenthesized_expression "((p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(p->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(p->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "p->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "p->options" identifier -> field_identifier) & identifier) )) == identifier) )) (break_statement "break;" break ;)) (expression_statement "MHD_connection_mark_closed_(pMVar4);" (call_expression "MHD_connection_mark_closed_(pMVar4)" identifier (argument_list "(pMVar4)" ( identifier ))) ;) (expression_statement "pMVar4 = pMVar32->connections_tail;" (assignment_expression "pMVar4 = pMVar32->connections_tail" identifier = (field_expression "pMVar32->connections_tail" identifier -> field_identifier)) ;) })) (expression_statement "pMVar34 = &p->cleanup_connection_mutex;" (assignment_expression "pMVar34 = &p->cleanup_connection_mutex" identifier = (pointer_expression "&p->cleanup_connection_mutex" & (field_expression "p->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);" (call_expression "MHD_connection_close_(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN)" identifier (argument_list "(pMVar4,MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34);" (assignment_expression "iVar3 = (**(code **)(pcVar39 + 0x22884))(pMVar34)" identifier = (call_expression "(**(code **)(pcVar39 + 0x22884))(pMVar34)" (parenthesized_expression "(**(code **)(pcVar39 + 0x22884))" ( (pointer_expression "**(code **)(pcVar39 + 0x22884)" * (pointer_expression "*(code **)(pcVar39 + 0x22884)" * (cast_expression "(code **)(pcVar39 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22884)" ( (binary_expression "pcVar39 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pMVar34)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );\n      }" { (do_statement "do {\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        } while( true );" do (compound_statement "{\n          uVar25 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);\n        }" { (expression_statement "uVar25 = 0x11ca;" (assignment_expression "uVar25 = 0x11ca" identifier = number_literal) ;) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x2264c)" ( (binary_expression "pcVar39 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                     uVar25,*(int *)(pcVar39 + 0x22638) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar39 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar39 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22644)" ( (binary_expression "pcVar39 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                    (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x2264c)" ( (binary_expression "pcVar39 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0)" ( (pointer_expression "**(undefined4 **)(pcVar39 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar39 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22644)" ( (binary_expression "pcVar39 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pMVar22 = pMVar4->prevX;" (assignment_expression "pMVar22 = pMVar4->prevX" identifier = (field_expression "pMVar4->prevX" identifier -> field_identifier)) ;) (expression_statement "pMVar24 = pMVar4->nextX;" (assignment_expression "pMVar24 = pMVar4->nextX" identifier = (field_expression "pMVar4->nextX" identifier -> field_identifier)) ;) (if_statement "if (pMVar4->connection_timeout == p->connection_timeout) {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }\n      else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }" if (parenthesized_expression "(pMVar4->connection_timeout == p->connection_timeout)" ( (binary_expression "pMVar4->connection_timeout == p->connection_timeout" (field_expression "pMVar4->connection_timeout" identifier -> field_identifier) == (field_expression "p->connection_timeout" identifier -> field_identifier)) )) (compound_statement "{\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;\n        p->normal_timeout_tail = pMVar24;\nLAB_0001ccf4:\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        p->connections_head = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pMVar22->prev = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        p->cleanup_tail = pMVar4;\n      }" { (if_statement "if (pMVar22 == (MHD_Connection *)0x0) {\n          p->normal_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }" if (parenthesized_expression "(pMVar22 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          p->normal_timeout_head = pMVar24;\n        }" { (expression_statement "p->normal_timeout_head = pMVar24;" (assignment_expression "p->normal_timeout_head = pMVar24" (field_expression "p->normal_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar22->nextX = pMVar24;\n        }" else (compound_statement "{\n          pMVar22->nextX = pMVar24;\n        }" { (expression_statement "pMVar22->nextX = pMVar24;" (assignment_expression "pMVar22->nextX = pMVar24" (field_expression "pMVar22->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar22 = pMVar4->nextX;" (assignment_expression "pMVar22 = pMVar4->nextX" identifier = (field_expression "pMVar4->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar24 = pMVar4->prevX;" (assignment_expression "pMVar24 = pMVar4->prevX" identifier = (field_expression "pMVar4->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001ccf0;" if (parenthesized_expression "(pMVar22 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001ccf0;" goto statement_identifier ;)) (expression_statement "p->normal_timeout_tail = pMVar24;" (assignment_expression "p->normal_timeout_tail = pMVar24" (field_expression "p->normal_timeout_tail" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0001ccf4:\n        pMVar22 = pMVar4->prev;" statement_identifier : (expression_statement "pMVar22 = pMVar4->prev;" (assignment_expression "pMVar22 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;)) (expression_statement "pMVar24 = pMVar4->next;" (assignment_expression "pMVar24 = pMVar4->next" identifier = (field_expression "pMVar4->next" identifier -> field_identifier)) ;) (expression_statement "pMVar4->nextX = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->nextX = (MHD_Connection *)0x0" (field_expression "pMVar4->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar4->prevX = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->prevX = (MHD_Connection *)0x0" (field_expression "pMVar4->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd08;" if (parenthesized_expression "(pMVar22 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cd08;" goto statement_identifier ;)) (labeled_statement "LAB_0001cdfc:\n        p->connections_head = pMVar24;" statement_identifier : (expression_statement "p->connections_head = pMVar24;" (assignment_expression "p->connections_head = pMVar24" (field_expression "p->connections_head" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar22 = pMVar4->next;" (assignment_expression "pMVar22 = pMVar4->next" identifier = (field_expression "pMVar4->next" identifier -> field_identifier)) ;) (expression_statement "pMVar24 = pMVar4->prev;" (assignment_expression "pMVar24 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001ce0c;" if (parenthesized_expression "(pMVar22 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001ce0c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd18:\n        pMVar22->prev = pMVar24;" statement_identifier : (expression_statement "pMVar22->prev = pMVar24;" (assignment_expression "pMVar22->prev = pMVar24" (field_expression "pMVar22->prev" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar4->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->next = (MHD_Connection *)0x0" (field_expression "pMVar4->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar4->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->prev = (MHD_Connection *)0x0" (field_expression "pMVar4->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar22 = p->cleanup_head;" (assignment_expression "pMVar22 = p->cleanup_head" identifier = (field_expression "p->cleanup_head" identifier -> field_identifier)) ;) (expression_statement "pMVar4->next = pMVar22;" (assignment_expression "pMVar4->next = pMVar22" (field_expression "pMVar4->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (p->cleanup_tail != (MHD_Connection *)0x0) goto LAB_0001cd38;" if (parenthesized_expression "(p->cleanup_tail != (MHD_Connection *)0x0)" ( (binary_expression "p->cleanup_tail != (MHD_Connection *)0x0" (field_expression "p->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_0001cd38;" goto statement_identifier ;)) (labeled_statement "LAB_0001ce2c:\n        p->cleanup_tail = pMVar4;" statement_identifier : (expression_statement "p->cleanup_tail = pMVar4;" (assignment_expression "p->cleanup_tail = pMVar4" (field_expression "p->cleanup_tail" identifier -> field_identifier) = identifier) ;)) }) (else_clause "else {\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }" else (compound_statement "{\n        if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }\n        pMVar22 = pMVar4->nextX;\n        pMVar24 = pMVar4->prevX;\n        if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }\n        p->manual_timeout_tail = pMVar24;\n        pMVar4->nextX = (MHD_Connection *)0x0;\n        pMVar4->prevX = (MHD_Connection *)0x0;\n        pMVar22 = pMVar4->prev;\n        pMVar24 = pMVar4->next;\n        if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pMVar22->next = pMVar24;\n        pMVar22 = pMVar4->next;\n        pMVar24 = pMVar4->prev;\n        if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        p->connections_tail = pMVar24;\n        pMVar4->next = (MHD_Connection *)0x0;\n        pMVar4->prev = (MHD_Connection *)0x0;\n        pMVar22 = p->cleanup_head;\n        pMVar4->next = pMVar22;\n        if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        pMVar22->prev = pMVar4;\n      }" { (if_statement "if (pMVar22 == (MHD_Connection *)0x0) {\n          p->manual_timeout_head = pMVar24;\n        }\n        else {\n          pMVar22->nextX = pMVar24;\n        }" if (parenthesized_expression "(pMVar22 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          p->manual_timeout_head = pMVar24;\n        }" { (expression_statement "p->manual_timeout_head = pMVar24;" (assignment_expression "p->manual_timeout_head = pMVar24" (field_expression "p->manual_timeout_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar22->nextX = pMVar24;\n        }" else (compound_statement "{\n          pMVar22->nextX = pMVar24;\n        }" { (expression_statement "pMVar22->nextX = pMVar24;" (assignment_expression "pMVar22->nextX = pMVar24" (field_expression "pMVar22->nextX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pMVar22 = pMVar4->nextX;" (assignment_expression "pMVar22 = pMVar4->nextX" identifier = (field_expression "pMVar4->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar24 = pMVar4->prevX;" (assignment_expression "pMVar24 = pMVar4->prevX" identifier = (field_expression "pMVar4->prevX" identifier -> field_identifier)) ;) (if_statement "if (pMVar22 != (MHD_Connection *)0x0) {\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }" if (parenthesized_expression "(pMVar22 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001ccf0:\n          pMVar22->prevX = pMVar24;\n          goto LAB_0001ccf4;\n        }" { (labeled_statement "LAB_0001ccf0:\n          pMVar22->prevX = pMVar24;" statement_identifier : (expression_statement "pMVar22->prevX = pMVar24;" (assignment_expression "pMVar22->prevX = pMVar24" (field_expression "pMVar22->prevX" identifier -> field_identifier) = identifier) ;)) (goto_statement "goto LAB_0001ccf4;" goto statement_identifier ;) })) (expression_statement "p->manual_timeout_tail = pMVar24;" (assignment_expression "p->manual_timeout_tail = pMVar24" (field_expression "p->manual_timeout_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar4->nextX = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->nextX = (MHD_Connection *)0x0" (field_expression "pMVar4->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar4->prevX = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->prevX = (MHD_Connection *)0x0" (field_expression "pMVar4->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar22 = pMVar4->prev;" (assignment_expression "pMVar22 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;) (expression_statement "pMVar24 = pMVar4->next;" (assignment_expression "pMVar24 = pMVar4->next" identifier = (field_expression "pMVar4->next" identifier -> field_identifier)) ;) (if_statement "if (pMVar22 == (MHD_Connection *)0x0) goto LAB_0001cdfc;" if (parenthesized_expression "(pMVar22 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cdfc;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd08:\n        pMVar22->next = pMVar24;" statement_identifier : (expression_statement "pMVar22->next = pMVar24;" (assignment_expression "pMVar22->next = pMVar24" (field_expression "pMVar22->next" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar22 = pMVar4->next;" (assignment_expression "pMVar22 = pMVar4->next" identifier = (field_expression "pMVar4->next" identifier -> field_identifier)) ;) (expression_statement "pMVar24 = pMVar4->prev;" (assignment_expression "pMVar24 = pMVar4->prev" identifier = (field_expression "pMVar4->prev" identifier -> field_identifier)) ;) (if_statement "if (pMVar22 != (MHD_Connection *)0x0) goto LAB_0001cd18;" if (parenthesized_expression "(pMVar22 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar22 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001cd18;" goto statement_identifier ;)) (labeled_statement "LAB_0001ce0c:\n        p->connections_tail = pMVar24;" statement_identifier : (expression_statement "p->connections_tail = pMVar24;" (assignment_expression "p->connections_tail = pMVar24" (field_expression "p->connections_tail" identifier -> field_identifier) = identifier) ;)) (expression_statement "pMVar4->next = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->next = (MHD_Connection *)0x0" (field_expression "pMVar4->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar4->prev = (MHD_Connection *)0x0;" (assignment_expression "pMVar4->prev = (MHD_Connection *)0x0" (field_expression "pMVar4->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pMVar22 = p->cleanup_head;" (assignment_expression "pMVar22 = p->cleanup_head" identifier = (field_expression "p->cleanup_head" identifier -> field_identifier)) ;) (expression_statement "pMVar4->next = pMVar22;" (assignment_expression "pMVar4->next = pMVar22" (field_expression "pMVar4->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (p->cleanup_tail == (MHD_Connection *)0x0) goto LAB_0001ce2c;" if (parenthesized_expression "(p->cleanup_tail == (MHD_Connection *)0x0)" ( (binary_expression "p->cleanup_tail == (MHD_Connection *)0x0" (field_expression "p->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_0001ce2c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd38:\n        pMVar22->prev = pMVar4;" statement_identifier : (expression_statement "pMVar22->prev = pMVar4;" (assignment_expression "pMVar22->prev = pMVar4" (field_expression "pMVar22->prev" identifier -> field_identifier) = identifier) ;)) }))) (expression_statement "pcVar40 = *(code **)(pcVar39 + 0x22918);" (assignment_expression "pcVar40 = *(code **)(pcVar39 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x22918)" * (cast_expression "(code **)(pcVar39 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22918)" ( (binary_expression "pcVar39 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "p->cleanup_head = pMVar4;" (assignment_expression "p->cleanup_head = pMVar4" (field_expression "p->cleanup_head" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar3 = (*pcVar40)(pMVar34);" (assignment_expression "iVar3 = (*pcVar40)(pMVar34)" identifier = (call_expression "(*pcVar40)(pMVar34)" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "(pMVar34)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (expression_statement "uVar25 = 0x11dd;" (assignment_expression "uVar25 = 0x11dd" identifier = number_literal) ;) }) (else_clause "else {\n    uVar25 = 0x196b;\n  }" else (compound_statement "{\n    uVar25 = 0x196b;\n  }" { (expression_statement "uVar25 = 0x196b;" (assignment_expression "uVar25 = 0x196b" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001cd58:\n  pMVar17 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8);" statement_identifier : (expression_statement "pMVar17 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8);" (assignment_expression "pMVar17 = (MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8)" identifier = (cast_expression "(MHD_UpgradeResponseHandle *)\n            (*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8)" ( (type_descriptor "MHD_UpgradeResponseHandle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))\n                      (**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar39 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar39 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x2264c)" ( (binary_expression "pcVar39 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar39 + 0x22644),*(int *)(pcVar39 + 0x22638) + -0x40a0,\n                       uVar25,*(int *)(pcVar39 + 0x22638) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar39 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar39 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x22644)" ( (binary_expression "pcVar39 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar39 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar39 + 0x22638)" * (cast_expression "(int *)(pcVar39 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x22638)" ( (binary_expression "pcVar39 + 0x22638" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0001cd7c:\n  if (pMVar17->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);\n  }" statement_identifier : (if_statement "if (pMVar17->was_closed == false) {\nLAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);\n  }" if (parenthesized_expression "(pMVar17->was_closed == false)" ( (binary_expression "pMVar17->was_closed == false" (field_expression "pMVar17->was_closed" identifier -> field_identifier) == false) )) (compound_statement "{\nLAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);\n  }" { (labeled_statement "LAB_0001cdb0:\n    MHD_DLOG(pMVar32,(char *)unaff_s7);" statement_identifier : (expression_statement "MHD_DLOG(pMVar32,(char *)unaff_s7);" (call_expression "MHD_DLOG(pMVar32,(char *)unaff_s7)" identifier (argument_list "(pMVar32,(char *)unaff_s7)" ( identifier , (cast_expression "(char *)unaff_s7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) }))) (expression_statement "pMVar4->urh->was_closed = SUB41(p,0);" (assignment_expression "pMVar4->urh->was_closed = SUB41(p,0)" (field_expression "pMVar4->urh->was_closed" (field_expression "pMVar4->urh" identifier -> field_identifier) -> field_identifier) = (call_expression "SUB41(p,0)" identifier (argument_list "(p,0)" ( identifier , number_literal )))) ;) (if_statement "if (MVar37 == MHD_NO_FLAG) {\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar4);\n  }" if (parenthesized_expression "(MVar37 == MHD_NO_FLAG)" ( (binary_expression "MVar37 == MHD_NO_FLAG" identifier == identifier) )) (compound_statement "{\nLAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar4);\n  }" { (labeled_statement "LAB_0001cd9c:\n    MHD_connection_finish_forward_(pMVar4);" statement_identifier : (expression_statement "MHD_connection_finish_forward_(pMVar4);" (call_expression "MHD_connection_finish_forward_(pMVar4)" identifier (argument_list "(pMVar4)" ( identifier ))) ;)) })) (goto_statement "goto LAB_0001cb4c;" goto statement_identifier ;) })))
(translation_unit "int FUN_0001b6e4(int *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\n}\n\n" (function_definition "int FUN_0001b6e4(int *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\n}" primitive_type (function_declarator "FUN_0001b6e4(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\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 ******ppppppiVar5;" primitive_type (pointer_declarator "******ppppppiVar5" * (pointer_declarator "*****ppppppiVar5" * (pointer_declarator "****ppppppiVar5" * (pointer_declarator "***ppppppiVar5" * (pointer_declarator "**ppppppiVar5" * (pointer_declarator "*ppppppiVar5" * identifier)))))) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *******pppppppiVar7;" primitive_type (pointer_declarator "*******pppppppiVar7" * (pointer_declarator "******pppppppiVar7" * (pointer_declarator "*****pppppppiVar7" * (pointer_declarator "****pppppppiVar7" * (pointer_declarator "***pppppppiVar7" * (pointer_declarator "**pppppppiVar7" * (pointer_declarator "*pppppppiVar7" * identifier))))))) ;) (declaration "int *******pppppppiVar8;" primitive_type (pointer_declarator "*******pppppppiVar8" * (pointer_declarator "******pppppppiVar8" * (pointer_declarator "*****pppppppiVar8" * (pointer_declarator "****pppppppiVar8" * (pointer_declarator "***pppppppiVar8" * (pointer_declarator "**pppppppiVar8" * (pointer_declarator "*pppppppiVar8" * identifier))))))) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int ******ppppppiVar10;" primitive_type (pointer_declarator "******ppppppiVar10" * (pointer_declarator "*****ppppppiVar10" * (pointer_declarator "****ppppppiVar10" * (pointer_declarator "***ppppppiVar10" * (pointer_declarator "**ppppppiVar10" * (pointer_declarator "*ppppppiVar10" * identifier)))))) ;) (declaration "int *******pppppppiVar11;" primitive_type (pointer_declarator "*******pppppppiVar11" * (pointer_declarator "******pppppppiVar11" * (pointer_declarator "*****pppppppiVar11" * (pointer_declarator "****pppppppiVar11" * (pointer_declarator "***pppppppiVar11" * (pointer_declarator "**pppppppiVar11" * (pointer_declarator "*pppppppiVar11" * identifier))))))) ;) (declaration "int *****pppppiVar12;" primitive_type (pointer_declarator "*****pppppiVar12" * (pointer_declarator "****pppppiVar12" * (pointer_declarator "***pppppiVar12" * (pointer_declarator "**pppppiVar12" * (pointer_declarator "*pppppiVar12" * identifier))))) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *******pppppppiVar14;" primitive_type (pointer_declarator "*******pppppppiVar14" * (pointer_declarator "******pppppppiVar14" * (pointer_declarator "*****pppppppiVar14" * (pointer_declarator "****pppppppiVar14" * (pointer_declarator "***pppppppiVar14" * (pointer_declarator "**pppppppiVar14" * (pointer_declarator "*pppppppiVar14" * identifier))))))) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int *******pppppppiVar16;" primitive_type (pointer_declarator "*******pppppppiVar16" * (pointer_declarator "******pppppppiVar16" * (pointer_declarator "*****pppppppiVar16" * (pointer_declarator "****pppppppiVar16" * (pointer_declarator "***pppppppiVar16" * (pointer_declarator "**pppppppiVar16" * (pointer_declarator "*pppppppiVar16" * identifier))))))) ;) (declaration "int *******pppppppiVar17;" primitive_type (pointer_declarator "*******pppppppiVar17" * (pointer_declarator "******pppppppiVar17" * (pointer_declarator "*****pppppppiVar17" * (pointer_declarator "****pppppppiVar17" * (pointer_declarator "***pppppppiVar17" * (pointer_declarator "**pppppppiVar17" * (pointer_declarator "*pppppppiVar17" * identifier))))))) ;) (declaration "int *******pppppppiVar18;" primitive_type (pointer_declarator "*******pppppppiVar18" * (pointer_declarator "******pppppppiVar18" * (pointer_declarator "*****pppppppiVar18" * (pointer_declarator "****pppppppiVar18" * (pointer_declarator "***pppppppiVar18" * (pointer_declarator "**pppppppiVar18" * (pointer_declarator "*pppppppiVar18" * identifier))))))) ;) (declaration "int *****pppppiVar19;" primitive_type (pointer_declarator "*****pppppiVar19" * (pointer_declarator "****pppppiVar19" * (pointer_declarator "***pppppiVar19" * (pointer_declarator "**pppppiVar19" * (pointer_declarator "*pppppiVar19" * identifier))))) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int ******ppppppiVar21;" primitive_type (pointer_declarator "******ppppppiVar21" * (pointer_declarator "*****ppppppiVar21" * (pointer_declarator "****ppppppiVar21" * (pointer_declarator "***ppppppiVar21" * (pointer_declarator "**ppppppiVar21" * (pointer_declarator "*ppppppiVar21" * identifier)))))) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *******pppppppiVar24;" primitive_type (pointer_declarator "*******pppppppiVar24" * (pointer_declarator "******pppppppiVar24" * (pointer_declarator "*****pppppppiVar24" * (pointer_declarator "****pppppppiVar24" * (pointer_declarator "***pppppppiVar24" * (pointer_declarator "**pppppppiVar24" * (pointer_declarator "*pppppppiVar24" * identifier))))))) ;) (declaration "int *******pppppppiVar25;" primitive_type (pointer_declarator "*******pppppppiVar25" * (pointer_declarator "******pppppppiVar25" * (pointer_declarator "*****pppppppiVar25" * (pointer_declarator "****pppppppiVar25" * (pointer_declarator "***pppppppiVar25" * (pointer_declarator "**pppppppiVar25" * (pointer_declarator "*pppppppiVar25" * identifier))))))) ;) (declaration "int *******pppppppiVar26;" primitive_type (pointer_declarator "*******pppppppiVar26" * (pointer_declarator "******pppppppiVar26" * (pointer_declarator "*****pppppppiVar26" * (pointer_declarator "****pppppppiVar26" * (pointer_declarator "***pppppppiVar26" * (pointer_declarator "**pppppppiVar26" * (pointer_declarator "*pppppppiVar26" * identifier))))))) ;) (declaration "int ******ppppppiVar27;" primitive_type (pointer_declarator "******ppppppiVar27" * (pointer_declarator "*****ppppppiVar27" * (pointer_declarator "****ppppppiVar27" * (pointer_declarator "***ppppppiVar27" * (pointer_declarator "**ppppppiVar27" * (pointer_declarator "*ppppppiVar27" * identifier)))))) ;) (declaration "int ****ppppiVar28;" primitive_type (pointer_declarator "****ppppiVar28" * (pointer_declarator "***ppppiVar28" * (pointer_declarator "**ppppiVar28" * (pointer_declarator "*ppppiVar28" * identifier)))) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int *******unaff_s6;" primitive_type (pointer_declarator "*******unaff_s6" * (pointer_declarator "******unaff_s6" * (pointer_declarator "*****unaff_s6" * (pointer_declarator "****unaff_s6" * (pointer_declarator "***unaff_s6" * (pointer_declarator "**unaff_s6" * (pointer_declarator "*unaff_s6" * identifier))))))) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "int *******unaff_s7;" primitive_type (pointer_declarator "*******unaff_s7" * (pointer_declarator "******unaff_s7" * (pointer_declarator "*****unaff_s7" * (pointer_declarator "****unaff_s7" * (pointer_declarator "***unaff_s7" * (pointer_declarator "**unaff_s7" * (pointer_declarator "*unaff_s7" * identifier))))))) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined1 auStack_428 [12];" type_identifier (array_declarator "auStack_428 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_41c;" primitive_type identifier ;) (declaration "int *******pppppppiStack_418;" primitive_type (pointer_declarator "*******pppppppiStack_418" * (pointer_declarator "******pppppppiStack_418" * (pointer_declarator "*****pppppppiStack_418" * (pointer_declarator "****pppppppiStack_418" * (pointer_declarator "***pppppppiStack_418" * (pointer_declarator "**pppppppiStack_418" * (pointer_declarator "*pppppppiStack_418" * identifier))))))) ;) (declaration "int ******ppppppiStack_414;" primitive_type (pointer_declarator "******ppppppiStack_414" * (pointer_declarator "*****ppppppiStack_414" * (pointer_declarator "****ppppppiStack_414" * (pointer_declarator "***ppppppiStack_414" * (pointer_declarator "**ppppppiStack_414" * (pointer_declarator "*ppppppiStack_414" * identifier)))))) ;) (declaration "int *******pppppppiStack_410;" primitive_type (pointer_declarator "*******pppppppiStack_410" * (pointer_declarator "******pppppppiStack_410" * (pointer_declarator "*****pppppppiStack_410" * (pointer_declarator "****pppppppiStack_410" * (pointer_declarator "***pppppppiStack_410" * (pointer_declarator "**pppppppiStack_410" * (pointer_declarator "*pppppppiStack_410" * identifier))))))) ;) (declaration "undefined4 uStack_40c;" type_identifier identifier ;) (declaration "int *******pppppppiStack_408;" primitive_type (pointer_declarator "*******pppppppiStack_408" * (pointer_declarator "******pppppppiStack_408" * (pointer_declarator "*****pppppppiStack_408" * (pointer_declarator "****pppppppiStack_408" * (pointer_declarator "***pppppppiStack_408" * (pointer_declarator "**pppppppiStack_408" * (pointer_declarator "*pppppppiStack_408" * identifier))))))) ;) (declaration "int ******ppppppiStack_404;" primitive_type (pointer_declarator "******ppppppiStack_404" * (pointer_declarator "*****ppppppiStack_404" * (pointer_declarator "****ppppppiStack_404" * (pointer_declarator "***ppppppiStack_404" * (pointer_declarator "**ppppppiStack_404" * (pointer_declarator "*ppppppiStack_404" * identifier)))))) ;) (declaration "int *******pppppppiStack_400;" primitive_type (pointer_declarator "*******pppppppiStack_400" * (pointer_declarator "******pppppppiStack_400" * (pointer_declarator "*****pppppppiStack_400" * (pointer_declarator "****pppppppiStack_400" * (pointer_declarator "***pppppppiStack_400" * (pointer_declarator "**pppppppiStack_400" * (pointer_declarator "*pppppppiStack_400" * identifier))))))) ;) (declaration "int *******pppppppiStack_3fc;" primitive_type (pointer_declarator "*******pppppppiStack_3fc" * (pointer_declarator "******pppppppiStack_3fc" * (pointer_declarator "*****pppppppiStack_3fc" * (pointer_declarator "****pppppppiStack_3fc" * (pointer_declarator "***pppppppiStack_3fc" * (pointer_declarator "**pppppppiStack_3fc" * (pointer_declarator "*pppppppiStack_3fc" * identifier))))))) ;) (declaration "int *******pppppppiStack_3f8;" primitive_type (pointer_declarator "*******pppppppiStack_3f8" * (pointer_declarator "******pppppppiStack_3f8" * (pointer_declarator "*****pppppppiStack_3f8" * (pointer_declarator "****pppppppiStack_3f8" * (pointer_declarator "***pppppppiStack_3f8" * (pointer_declarator "**pppppppiStack_3f8" * (pointer_declarator "*pppppppiStack_3f8" * identifier))))))) ;) (declaration "code *pcStack_3f4;" type_identifier (pointer_declarator "*pcStack_3f4" * identifier) ;) (declaration "int *******pppppppiStack_3e0;" primitive_type (pointer_declarator "*******pppppppiStack_3e0" * (pointer_declarator "******pppppppiStack_3e0" * (pointer_declarator "*****pppppppiStack_3e0" * (pointer_declarator "****pppppppiStack_3e0" * (pointer_declarator "***pppppppiStack_3e0" * (pointer_declarator "**pppppppiStack_3e0" * (pointer_declarator "*pppppppiStack_3e0" * identifier))))))) ;) (declaration "undefined4 uStack_3dc;" type_identifier identifier ;) (declaration "code *pcStack_3d8;" type_identifier (pointer_declarator "*pcStack_3d8" * identifier) ;) (declaration "int *piStack_3cc;" primitive_type (pointer_declarator "*piStack_3cc" * identifier) ;) (declaration "int *******pppppppiStack_3c8;" primitive_type (pointer_declarator "*******pppppppiStack_3c8" * (pointer_declarator "******pppppppiStack_3c8" * (pointer_declarator "*****pppppppiStack_3c8" * (pointer_declarator "****pppppppiStack_3c8" * (pointer_declarator "***pppppppiStack_3c8" * (pointer_declarator "**pppppppiStack_3c8" * (pointer_declarator "*pppppppiStack_3c8" * identifier))))))) ;) (declaration "int *******pppppppiStack_3c4;" primitive_type (pointer_declarator "*******pppppppiStack_3c4" * (pointer_declarator "******pppppppiStack_3c4" * (pointer_declarator "*****pppppppiStack_3c4" * (pointer_declarator "****pppppppiStack_3c4" * (pointer_declarator "***pppppppiStack_3c4" * (pointer_declarator "**pppppppiStack_3c4" * (pointer_declarator "*pppppppiStack_3c4" * identifier))))))) ;) (declaration "int iStack_3c0;" primitive_type identifier ;) (declaration "int ******ppppppiStack_3bc;" primitive_type (pointer_declarator "******ppppppiStack_3bc" * (pointer_declarator "*****ppppppiStack_3bc" * (pointer_declarator "****ppppppiStack_3bc" * (pointer_declarator "***ppppppiStack_3bc" * (pointer_declarator "**ppppppiStack_3bc" * (pointer_declarator "*ppppppiStack_3bc" * identifier)))))) ;) (declaration "int *******pppppppiStack_3b8;" primitive_type (pointer_declarator "*******pppppppiStack_3b8" * (pointer_declarator "******pppppppiStack_3b8" * (pointer_declarator "*****pppppppiStack_3b8" * (pointer_declarator "****pppppppiStack_3b8" * (pointer_declarator "***pppppppiStack_3b8" * (pointer_declarator "**pppppppiStack_3b8" * (pointer_declarator "*pppppppiStack_3b8" * identifier))))))) ;) (declaration "undefined4 uStack_3b4;" type_identifier identifier ;) (declaration "int ******ppppppiStack_3b0;" primitive_type (pointer_declarator "******ppppppiStack_3b0" * (pointer_declarator "*****ppppppiStack_3b0" * (pointer_declarator "****ppppppiStack_3b0" * (pointer_declarator "***ppppppiStack_3b0" * (pointer_declarator "**ppppppiStack_3b0" * (pointer_declarator "*ppppppiStack_3b0" * identifier)))))) ;) (declaration "undefined4 uStack_3ac;" type_identifier identifier ;) (declaration "int ******ppppppiStack_3a4;" primitive_type (pointer_declarator "******ppppppiStack_3a4" * (pointer_declarator "*****ppppppiStack_3a4" * (pointer_declarator "****ppppppiStack_3a4" * (pointer_declarator "***ppppppiStack_3a4" * (pointer_declarator "**ppppppiStack_3a4" * (pointer_declarator "*ppppppiStack_3a4" * identifier)))))) ;) (declaration "undefined4 uStack_3a0;" type_identifier identifier ;) (declaration "int ******appppppiStack_39c [32];" primitive_type (pointer_declarator "******appppppiStack_39c [32]" * (pointer_declarator "*****appppppiStack_39c [32]" * (pointer_declarator "****appppppiStack_39c [32]" * (pointer_declarator "***appppppiStack_39c [32]" * (pointer_declarator "**appppppiStack_39c [32]" * (pointer_declarator "*appppppiStack_39c [32]" * (array_declarator "appppppiStack_39c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_31c [32];" primitive_type (pointer_declarator "******appppppiStack_31c [32]" * (pointer_declarator "*****appppppiStack_31c [32]" * (pointer_declarator "****appppppiStack_31c [32]" * (pointer_declarator "***appppppiStack_31c [32]" * (pointer_declarator "**appppppiStack_31c [32]" * (pointer_declarator "*appppppiStack_31c [32]" * (array_declarator "appppppiStack_31c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_29c [32];" primitive_type (pointer_declarator "******appppppiStack_29c [32]" * (pointer_declarator "*****appppppiStack_29c [32]" * (pointer_declarator "****appppppiStack_29c [32]" * (pointer_declarator "***appppppiStack_29c [32]" * (pointer_declarator "**appppppiStack_29c [32]" * (pointer_declarator "*appppppiStack_29c [32]" * (array_declarator "appppppiStack_29c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_21c [32];" primitive_type (pointer_declarator "******appppppiStack_21c [32]" * (pointer_declarator "*****appppppiStack_21c [32]" * (pointer_declarator "****appppppiStack_21c [32]" * (pointer_declarator "***appppppiStack_21c [32]" * (pointer_declarator "**appppppiStack_21c [32]" * (pointer_declarator "*appppppiStack_21c [32]" * (array_declarator "appppppiStack_21c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_19c [32];" primitive_type (pointer_declarator "******appppppiStack_19c [32]" * (pointer_declarator "*****appppppiStack_19c [32]" * (pointer_declarator "****appppppiStack_19c [32]" * (pointer_declarator "***appppppiStack_19c [32]" * (pointer_declarator "**appppppiStack_19c [32]" * (pointer_declarator "*appppppiStack_19c [32]" * (array_declarator "appppppiStack_19c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******appppppiStack_11c [32];" primitive_type (pointer_declarator "******appppppiStack_11c [32]" * (pointer_declarator "*****appppppiStack_11c [32]" * (pointer_declarator "****appppppiStack_11c [32]" * (pointer_declarator "***appppppiStack_11c [32]" * (pointer_declarator "**appppppiStack_11c [32]" * (pointer_declarator "*appppppiStack_11c [32]" * (array_declarator "appppppiStack_11c [32]" identifier [ number_literal ]))))))) ;) (declaration "int ******ppppppiStack_9c;" primitive_type (pointer_declarator "******ppppppiStack_9c" * (pointer_declarator "*****ppppppiStack_9c" * (pointer_declarator "****ppppppiStack_9c" * (pointer_declarator "***ppppppiStack_9c" * (pointer_declarator "**ppppppiStack_9c" * (pointer_declarator "*ppppppiStack_9c" * identifier)))))) ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (expression_statement "iVar20 = param_1[6];" (assignment_expression "iVar20 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "iVar23 = iVar20 + 0xac;" (assignment_expression "iVar23 = iVar20 + 0xac" identifier = (binary_expression "iVar20 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" { (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001b988;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x3f) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x3f) != '\0'" (pointer_expression "*(char *)(param_1 + 0x3f)" * (cast_expression "(char *)(param_1 + 0x3f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f)" ( (binary_expression "param_1 + 0x3f" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0x3f) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x3f) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x3f)" * (cast_expression "(undefined1 *)(param_1 + 0x3f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f)" ( (binary_expression "param_1 + 0x3f" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = (*(code *)puVar1)(iVar23);" (assignment_expression "iVar2 = (*(code *)puVar1)(iVar23)" identifier = (call_expression "(*(code *)puVar1)(iVar23)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "uVar15 = 0xa8a;" (assignment_expression "uVar15 = 0xa8a" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) goto LAB_0001b8ac;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b8ac;" goto statement_identifier ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar20 + 0xf8) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar20 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar20 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar20 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar20 + 0xf8)" * (cast_expression "(uint *)(iVar20 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xf8)" ( (binary_expression "iVar20 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }" { (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[4];" (assignment_expression "iVar13 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (if_statement "if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" if (parenthesized_expression "(param_1[0x26] == *(int *)(iVar20 + 0xf0))" ( (binary_expression "param_1[0x26] == *(int *)(iVar20 + 0xf0)" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar20 + 0xf0)" * (cast_expression "(int *)(iVar20 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xf0)" ( (binary_expression "iVar20 + 0xf0" identifier + number_literal) ))))) )) (compound_statement "{\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" { (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }" { (expression_statement "*(int *)(iVar20 + 0x30) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x30) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" else (compound_statement "{\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" { (expression_statement "*(int *)(iVar2 + 0x10) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar13" (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) )))) = identifier) ;) }))) (expression_statement "iVar2 = param_1[4];" (assignment_expression "iVar2 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[5];" (assignment_expression "iVar13 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) goto LAB_0001b770;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b770;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar20 + 0x34) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x34) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x34)" * (cast_expression "(int *)(iVar20 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x34)" ( (binary_expression "iVar20 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" else (compound_statement "{\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" { (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }" { (expression_statement "*(int *)(iVar20 + 0x38) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x38) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x38)" * (cast_expression "(int *)(iVar20 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" else (compound_statement "{\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" { (expression_statement "*(int *)(iVar2 + 0x10) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar13" (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) )))) = identifier) ;) }))) (expression_statement "iVar2 = param_1[4];" (assignment_expression "iVar2 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[5];" (assignment_expression "iVar13 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" { (expression_statement "*(int *)(iVar20 + 0x3c) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x3c) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x3c)" * (cast_expression "(int *)(iVar20 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" else (compound_statement "{\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" { (labeled_statement "LAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar2 + 0x14) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x14) = iVar13" (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) )))) = identifier) ;)) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) }))) }))) })) (if_statement "if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" if (parenthesized_expression "(param_1[3] == 0)" ( (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }" { (expression_statement "*(int *)(iVar20 + 8) = param_1[2];" (assignment_expression "*(int *)(iVar20 + 8) = param_1[2]" (pointer_expression "*(int *)(iVar20 + 8)" * (cast_expression "(int *)(iVar20 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) goto LAB_0001b86c;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001b86c;" goto statement_identifier ;)) (labeled_statement "LAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar2 + 0xc) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar13" (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) ;)) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar20 + 0x10)" identifier = (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "param_1[2] = iVar2;" (assignment_expression "param_1[2] = iVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;" if (parenthesized_expression "(*(int *)(iVar20 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar20 + 0x14) != 0" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001b7b8;" goto statement_identifier ;)) (labeled_statement "LAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;" statement_identifier : (expression_statement "*(int **)(iVar20 + 0x14) = param_1;" (assignment_expression "*(int **)(iVar20 + 0x14) = param_1" (pointer_expression "*(int **)(iVar20 + 0x14)" * (cast_expression "(int **)(iVar20 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" else (compound_statement "{\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" { (expression_statement "*(int *)(param_1[3] + 8) = param_1[2];" (assignment_expression "*(int *)(param_1[3] + 8) = param_1[2]" (pointer_expression "*(int *)(param_1[3] + 8)" * (cast_expression "(int *)(param_1[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + 8)" ( (binary_expression "param_1[3] + 8" (subscript_expression "param_1[3]" identifier [ number_literal ]) + number_literal) )))) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) goto LAB_0001b798;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001b798;" goto statement_identifier ;)) (labeled_statement "LAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar20 + 0xc) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0xc) = iVar13" (pointer_expression "*(int *)(iVar20 + 0xc)" * (cast_expression "(int *)(iVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar20 + 0x10)" identifier = (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "param_1[2] = iVar2;" (assignment_expression "param_1[2] = iVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;" if (parenthesized_expression "(*(int *)(iVar20 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar20 + 0x14) == 0" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001b88c;" goto statement_identifier ;)) (labeled_statement "LAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;" statement_identifier : (expression_statement "*(int **)(iVar2 + 0xc) = param_1;" (assignment_expression "*(int **)(iVar2 + 0xc) = param_1" (pointer_expression "*(int **)(iVar2 + 0xc)" * (cast_expression "(int **)(iVar2 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;)) }))) (expression_statement "*(int **)(iVar20 + 0x10) = param_1;" (assignment_expression "*(int **)(iVar20 + 0x10) = param_1" (pointer_expression "*(int **)(iVar20 + 0x10)" * (cast_expression "(int **)(iVar20 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0xf5) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0xf5) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0xf5)" * (cast_expression "(undefined1 *)((int)param_1 + 0xf5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xf5)" ( (binary_expression "(int)param_1 + 0xf5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }" if (parenthesized_expression "((*(uint *)(iVar20 + 0xf8) & 0x200) != 0)" ( (binary_expression "(*(uint *)(iVar20 + 0xf8) & 0x200) != 0" (parenthesized_expression "(*(uint *)(iVar20 + 0xf8) & 0x200)" ( (binary_expression "*(uint *)(iVar20 + 0xf8) & 0x200" (pointer_expression "*(uint *)(iVar20 + 0xf8)" * (cast_expression "(uint *)(iVar20 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xf8)" ( (binary_expression "iVar20 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }" { (expression_statement "uVar3 = param_1[0x2c];" (assignment_expression "uVar3 = param_1[0x2c]" identifier = (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) ;) (if_statement "if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[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 *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }" { (if_statement "if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }" if (parenthesized_expression "((int *)param_1[1] == (int *)0x0)" ( (binary_expression "(int *)param_1[1] == (int *)0x0" (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }" { (expression_statement "*(int *)(iVar20 + 0x20) = *param_1;" (assignment_expression "*(int *)(iVar20 + 0x20) = *param_1" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (pointer_expression "*param_1" * identifier)) ;) }) (else_clause "else {\n        *(int *)param_1[1] = *param_1;\n      }" else (compound_statement "{\n        *(int *)param_1[1] = *param_1;\n      }" { (expression_statement "*(int *)param_1[1] = *param_1;" (assignment_expression "*(int *)param_1[1] = *param_1" (pointer_expression "*(int *)param_1[1]" * (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) = (pointer_expression "*param_1" * identifier)) ;) }))) (if_statement "if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }" { (expression_statement "*(int *)(iVar20 + 0x24) = param_1[1];" (assignment_expression "*(int *)(iVar20 + 0x24) = param_1[1]" (pointer_expression "*(int *)(iVar20 + 0x24)" * (cast_expression "(int *)(iVar20 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) )))) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" else (compound_statement "{\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" { (expression_statement "*(int *)(*param_1 + 4) = param_1[1];" (assignment_expression "*(int *)(*param_1 + 4) = param_1[1]" (pointer_expression "*(int *)(*param_1 + 4)" * (cast_expression "(int *)(*param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }))) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = param_1[0x2c] & 0xfffffffb;" (assignment_expression "uVar3 = param_1[0x2c] & 0xfffffffb" identifier = (binary_expression "param_1[0x2c] & 0xfffffffb" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "param_1[0x2c] = uVar3;" (assignment_expression "param_1[0x2c] = uVar3" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((uVar3 & 8) != 0) goto LAB_0001b8d0;" if (parenthesized_expression "((uVar3 & 8) != 0)" ( (binary_expression "(uVar3 & 8) != 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001b8d0;" goto statement_identifier ;)) (expression_statement "param_1[0x2c] = uVar3 | 0x10;" (assignment_expression "param_1[0x2c] = uVar3 | 0x10" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (binary_expression "uVar3 | 0x10" identifier | number_literal)) ;) })) (while_statement "while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }" { (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0001b988:\n    uVar15 = 0xab8;" statement_identifier : (expression_statement "uVar15 = 0xab8;" (assignment_expression "uVar15 = 0xab8" identifier = number_literal) ;)) (labeled_statement "LAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);" statement_identifier : (expression_statement "iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);" (assignment_expression "iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" ( (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" * (cast_expression "(code *)PTR_epoll_ctl_0003f278" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" ( (pointer_expression "*(undefined4 *)(iVar20 + 0xcc)" * (cast_expression "(undefined4 *)(iVar20 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xcc)" ( (binary_expression "iVar20 + 0xcc" identifier + number_literal) )))) , number_literal , (subscript_expression "param_1[0x29]" identifier [ number_literal ]) , number_literal )))) ;)) (if_statement "if (iVar2 != 0) break;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;" (assignment_expression "param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = (binary_expression "param_1[0x2c] & 0xfffffff7U | 0x10" (binary_expression "param_1[0x2c] & 0xfffffff7U" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (expression_statement "iVar2 = *(int *)PTR_DAT_0003f068;" (assignment_expression "iVar2 = *(int *)PTR_DAT_0003f068" identifier = (pointer_expression "*(int *)PTR_DAT_0003f068" * (cast_expression "(int *)PTR_DAT_0003f068" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar31 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar31 = *(code **)PTR_DAT_0003f070" identifier = (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "(*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);" (call_expression "(*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x4f40" identifier + number_literal) ))) ;) (if_statement "if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000)" ( (binary_expression "*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8)" * (cast_expression "(uint *)(*(int *)(iVar2 + 0x18) + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x18) + 0xf8)" ( (binary_expression "*(int *)(iVar2 + 0x18) + 0xf8" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }" { (if_statement "if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0xe0) != 0)" ( (binary_expression "*(int *)(iVar2 + 0xe0) != 0" (pointer_expression "*(int *)(iVar2 + 0xe0)" * (cast_expression "(int *)(iVar2 + 0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe0)" ( (binary_expression "iVar2 + 0xe0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }" { (expression_statement "iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);" (assignment_expression "iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" identifier = (call_expression "FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" identifier (argument_list "(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" ( (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x3554" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" * (cast_expression "(int *)(pcVar31 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x236a4)" ( (binary_expression "pcVar31 + 0x236a4" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar2 = FUN_0001b6e4();" (assignment_expression "iVar2 = FUN_0001b6e4()" identifier = (call_expression "FUN_0001b6e4()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar2 = **(int **)(pcVar31 + 0x236b0);" (assignment_expression "iVar2 = **(int **)(pcVar31 + 0x236b0)" identifier = (pointer_expression "**(int **)(pcVar31 + 0x236b0)" * (pointer_expression "*(int **)(pcVar31 + 0x236b0)" * (cast_expression "(int **)(pcVar31 + 0x236b0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x236b0)" ( (binary_expression "pcVar31 + 0x236b0" identifier + number_literal) )))))) ;) (expression_statement "pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);" (assignment_expression "pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x236b8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x236b8)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x236b8)" * (cast_expression "(undefined4 **)(pcVar31 + 0x236b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x236b8)" ( (binary_expression "pcVar31 + 0x236b8" identifier + number_literal) ))))))) ;) (expression_statement "(*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );" (call_expression "(*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            )" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            )" ( identifier , (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" * (cast_expression "(int *)(pcVar31 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x236a4)" ( (binary_expression "pcVar31 + 0x236a4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x359c" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" * (cast_expression "(int *)(pcVar31 + 0x236a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x236a4)" ( (binary_expression "pcVar31 + 0x236a4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar13 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar2 + 0x18)" identifier = (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar13 + 0xf8) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar13 + 0xf8) & 0x2000)" ( (binary_expression "*(uint *)(iVar13 + 0xf8) & 0x2000" (pointer_expression "*(uint *)(iVar13 + 0xf8)" * (cast_expression "(uint *)(iVar13 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf8)" ( (binary_expression "iVar13 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);" (call_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23638)" ( (binary_expression "pcVar32 + 0x23638" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514)" ( (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23630)" ( (binary_expression "pcVar32 + 0x23630" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x3514" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar2 = iVar20;" (assignment_expression "iVar2 = iVar20" identifier = identifier) ;) }) (else_clause "else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" else (compound_statement "{\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" { (expression_statement "iVar23 = iVar13 + 0xac;" (assignment_expression "iVar23 = iVar13 + 0xac" identifier = (binary_expression "iVar13 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23)" identifier = (call_expression "(**(code **)(pcVar32 + 0x23870))(iVar23)" (parenthesized_expression "(**(code **)(pcVar32 + 0x23870))" ( (pointer_expression "**(code **)(pcVar32 + 0x23870)" * (pointer_expression "*(code **)(pcVar32 + 0x23870)" * (cast_expression "(code **)(pcVar32 + 0x23870)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23870)" ( (binary_expression "pcVar32 + 0x23870" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) goto LAB_0001bb7c;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bb7c;" goto statement_identifier ;)) (expression_statement "pcVar31 = *(code **)(pcVar32 + 0x23904);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x23904)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x23904)" * (cast_expression "(code **)(pcVar32 + 0x23904)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23904)" ( (binary_expression "pcVar32 + 0x23904" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar2 + 0xfc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xfc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xfc)" * (cast_expression "(undefined1 *)(iVar2 + 0xfc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xfc)" ( (binary_expression "iVar2 + 0xfc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar13 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar13 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar13 + 0xe3)" * (cast_expression "(undefined1 *)(iVar13 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xe3)" ( (binary_expression "iVar13 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar20 = (*pcVar31)(iVar23);" (assignment_expression "iVar20 = (*pcVar31)(iVar23)" identifier = (call_expression "(*pcVar31)(iVar23)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1))" ( (binary_expression "(*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)" (parenthesized_expression "(*(int *)(iVar13 + 0xdc) != -1)" ( (binary_expression "*(int *)(iVar13 + 0xdc) != -1" (pointer_expression "*(int *)(iVar13 + 0xdc)" * (cast_expression "(int *)(iVar13 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xdc)" ( (binary_expression "iVar13 + 0xdc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)" ( (comma_expression "iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1" (assignment_expression "iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" identifier = (call_expression "(**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar32 + 0x237e8))" ( (pointer_expression "**(code **)(pcVar32 + 0x237e8)" * (pointer_expression "*(code **)(pcVar32 + 0x237e8)" * (cast_expression "(code **)(pcVar32 + 0x237e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x237e8)" ( (binary_expression "pcVar32 + 0x237e8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" ( (pointer_expression "*(int *)(iVar13 + 0xdc)" * (cast_expression "(int *)(iVar13 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xdc)" ( (binary_expression "iVar13 + 0xdc" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x28d8" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar2 < 1" identifier < number_literal)) ))) )) (compound_statement "{\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }" { (expression_statement "piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))()" identifier = (cast_expression "(int *)(**(code **)(pcVar32 + 0x237cc))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x237cc))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x237cc))" ( (pointer_expression "**(code **)(pcVar32 + 0x237cc)" * (pointer_expression "*(code **)(pcVar32 + 0x237cc)" * (cast_expression "(code **)(pcVar32 + 0x237cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x237cc)" ( (binary_expression "pcVar32 + 0x237cc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *piVar4;" (assignment_expression "iVar2 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (if_statement "if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }" if (parenthesized_expression "(iVar2 != 0xb)" ( (binary_expression "iVar2 != 0xb" identifier != number_literal) )) (compound_statement "{\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }" { (expression_statement "iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);" (assignment_expression "iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" identifier = (call_expression "FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" identifier (argument_list "(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" ( identifier , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x34cc" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) })) (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23638)" ( (binary_expression "pcVar32 + 0x23638" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23630)" ( (binary_expression "pcVar32 + 0x23630" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x51b8" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);" statement_identifier : (expression_statement "pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);" (assignment_expression "pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630)" identifier = (cast_expression "(int *******)**(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23630)" ( (binary_expression "pcVar32 + 0x23630" identifier + number_literal) ))))))) ;)) (expression_statement "pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);" (assignment_expression "pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0)" identifier = (cast_expression "(int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x23624) + -0x51e0)" ( (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x51e0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);" (assignment_expression "pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638)" identifier = (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" * (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" * (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x23638)" ( (binary_expression "pcVar32 + 0x23638" identifier + number_literal) ))))))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0)" identifier = (cast_expression "(int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x23624) + -0x40a0)" ( (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" * (cast_expression "(int *)(pcVar32 + 0x23624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x23624)" ( (binary_expression "pcVar32 + 0x23624" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);" (call_expression "(*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppppiVar11,pppppppiVar14,0xb01)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcStack_3d8 = pcVar31 + 0x2b48c;" (assignment_expression "pcStack_3d8 = pcVar31 + 0x2b48c" identifier = (binary_expression "pcVar31 + 0x2b48c" identifier + number_literal)) ;) (expression_statement "piStack_3cc = *(int **)(pcVar31 + 0x23748);" (assignment_expression "piStack_3cc = *(int **)(pcVar31 + 0x23748)" identifier = (pointer_expression "*(int **)(pcVar31 + 0x23748)" * (cast_expression "(int **)(pcVar31 + 0x23748)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x23748)" ( (binary_expression "pcVar31 + 0x23748" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar27 = (int ******)&ppppppiStack_3a4;" (assignment_expression "ppppppiVar27 = (int ******)&ppppppiStack_3a4" identifier = (cast_expression "(int ******)&ppppppiStack_3a4" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&ppppppiStack_3a4" & identifier))) ;) (expression_statement "uVar15 = 0x8000001f;" (assignment_expression "uVar15 = 0x8000001f" identifier = number_literal) ;) (expression_statement "ppppppiVar21 = pppppppiVar11[6];" (assignment_expression "ppppppiVar21 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiStack_9c = (int ******)*piStack_3cc;" (assignment_expression "ppppppiStack_9c = (int ******)*piStack_3cc" identifier = (cast_expression "(int ******)*piStack_3cc" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*piStack_3cc" * identifier))) ;) (expression_statement "pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);" (assignment_expression "pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40)" identifier = (cast_expression "(int *******)((uint)ppppppiVar21[0x3e] & 0x40)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)ppppppiVar21[0x3e] & 0x40)" ( (binary_expression "(uint)ppppppiVar21[0x3e] & 0x40" (cast_expression "(uint)ppppppiVar21[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar21[0x3e]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "iStack_98 = iVar13;" (assignment_expression "iStack_98 = iVar13" identifier = identifier) ;) (expression_statement "iStack_94 = iVar2;" (assignment_expression "iStack_94 = iVar2" identifier = identifier) ;) (expression_statement "iStack_90 = iVar23;" (assignment_expression "iStack_90 = iVar23" identifier = identifier) ;) (expression_statement "ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();" (assignment_expression "ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))()" identifier = (cast_expression "(int ******)(**(code **)(pcVar31 + 0x23740))()" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(pcVar31 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar31 + 0x23740))" ( (pointer_expression "**(code **)(pcVar31 + 0x23740)" * (pointer_expression "*(code **)(pcVar31 + 0x23740)" * (cast_expression "(code **)(pcVar31 + 0x23740)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x23740)" ( (binary_expression "pcVar31 + 0x23740" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar11[0x17] = ppppppiVar5;" (assignment_expression "pppppppiVar11[0x17] = ppppppiVar5" (subscript_expression "pppppppiVar11[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);" (assignment_expression "pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fac) + -0x7974" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar25 = (int *******)0x0;" (assignment_expression "pppppppiVar25 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);" statement_identifier : (expression_statement "pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);" (assignment_expression "pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38)" identifier = (binary_expression "(int *******)(uint)*(byte *)(ppppppiVar21 + 0x38)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(ppppppiVar21 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar21 + 0x38)" ( (binary_expression "ppppppiVar21 + 0x38" identifier + number_literal) ))))) ;)) (if_statement "if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" if (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" ( (binary_expression "pppppppiVar18 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" { (labeled_statement "joined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" statement_identifier : (if_statement "if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" if (parenthesized_expression "(ppppppiVar10 != (int ******)0x13)" ( (binary_expression "ppppppiVar10 != (int ******)0x13" identifier != (cast_expression "(int ******)0x13" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" { (expression_statement "pppppppiVar14 = (int *******)0x3;" (assignment_expression "pppppppiVar14 = (int *******)0x3" identifier = (cast_expression "(int *******)0x3" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }" if (parenthesized_expression "(*(char *)(ppppppiVar21 + 0x38) == '\0')" ( (binary_expression "*(char *)(ppppppiVar21 + 0x38) == '\0'" (pointer_expression "*(char *)(ppppppiVar21 + 0x38)" * (cast_expression "(char *)(ppppppiVar21 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar21 + 0x38)" ( (binary_expression "ppppppiVar21 + 0x38" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pppppppiVar14 = (int *******)0x1;\n      }" { (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "FUN_00014148(pppppppiVar11);" (call_expression "FUN_00014148(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;) }))) (labeled_statement "LAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);" statement_identifier : (expression_statement "FUN_00015e38(pppppppiVar11);" (call_expression "FUN_00015e38(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;)) (labeled_statement "LAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" statement_identifier : (if_statement "if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" if (parenthesized_expression "(pppppppiVar11[9] != (int ******)0x0)" ( (binary_expression "pppppppiVar11[9] != (int ******)0x0" (subscript_expression "pppppppiVar11[9]" identifier [ number_literal ]) != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" { (expression_statement "(**(code **)(pcStack_3d8 + -0x7d58))();" (call_expression "(**(code **)(pcStack_3d8 + -0x7d58))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d58))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d58)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d58)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d58)" ( (binary_expression "pcStack_3d8 + -0x7d58" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pppppppiVar11[9] = (int ******)0x0;" (assignment_expression "pppppppiVar11[9] = (int ******)0x0" (subscript_expression "pppppppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }))) (if_statement "if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }" if (parenthesized_expression "(pppppppiVar11[0x29] != (int ******)0xffffffff)" ( (binary_expression "pppppppiVar11[0x29] != (int ******)0xffffffff" (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) != (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }" { (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "(**(code **)(pcStack_3d8 + -0x7ec8))();" (call_expression "(**(code **)(pcStack_3d8 + -0x7ec8))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ec8))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ec8)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ec8)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ec8)" ( (binary_expression "pcStack_3d8 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pppppppiVar16 = (int *******)0x8;" (assignment_expression "pppppppiVar16 = (int *******)0x8" identifier = (cast_expression "(int *******)0x8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }" if (parenthesized_expression "(ppppppiVar21[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar21[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ]) != (cast_expression "(int *****)0xffffffff" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }" { (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7e10))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e10))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e10)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e10)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e10)" ( (binary_expression "pcStack_3d8 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }" if (parenthesized_expression "((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb))" ( (binary_expression "(iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)" (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)" ( (comma_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) (compound_statement "{\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }" { (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(ppppppiVar21);" (call_expression "FUN_00020df0(ppppppiVar21)" identifier (argument_list "(ppppppiVar21)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_0001bd0c;" goto statement_identifier ;) })) (if_statement "if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;" if (parenthesized_expression "(ppppppiVar10 == (int ******)0x13)" ( (binary_expression "ppppppiVar10 == (int ******)0x13" identifier == (cast_expression "(int ******)0x13" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bdfc;" goto statement_identifier ;)) (expression_statement "unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);" (assignment_expression "unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5)" identifier = (binary_expression "(int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5)" (cast_expression "(int *******)(uint)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)pppppppiVar11 + 0xf5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar11 + 0xf5)" ( (binary_expression "(int)pppppppiVar11 + 0xf5" (cast_expression "(int)pppppppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s7 = (int *******)ppppppiVar21[0x3c];" (assignment_expression "unaff_s7 = (int *******)ppppppiVar21[0x3c]" identifier = (cast_expression "(int *******)ppppppiVar21[0x3c]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppiVar21[0x3c]" identifier [ number_literal ]))) ;) (if_statement "if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0))" ( (binary_expression "(unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)" (parenthesized_expression "(unaff_s6 != (int *******)0x0)" ( (binary_expression "unaff_s6 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar11[0x38] == (int ******)0x0)" ( (binary_expression "pppppppiVar11[0x38] == (int ******)0x0" (subscript_expression "pppppppiVar11[0x38]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" { (expression_statement "ppppppiVar5 = (int ******)ppppppiVar21[0x37];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar21[0x37]" identifier = (cast_expression "(int ******)ppppppiVar21[0x37]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar25 = unaff_s6;" (assignment_expression "pppppppiVar25 = unaff_s6" identifier = identifier) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" { (expression_statement "pppppppiStack_3c8 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c8 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar14 = pppppppiStack_3c8" identifier = identifier) ;) (do_statement "do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);" do (compound_statement "{\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      }" { (expression_statement "*pppppppiVar14 = (int ******)0x0;" (assignment_expression "*pppppppiVar14 = (int ******)0x0" (pointer_expression "*pppppppiVar14" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiVar14 + 1;" (assignment_expression "pppppppiVar14 = pppppppiVar14 + 1" identifier = (binary_expression "pppppppiVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppiVar14 != appppppiStack_31c)" ( (binary_expression "pppppppiVar14 != appppppiStack_31c" identifier != identifier) )) ;) (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);" (assignment_expression "iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0)" identifier = (call_expression "FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0)" identifier (argument_list "(ppppppiVar5,pppppppiStack_3c8,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (expression_statement "pppppppiVar17 = (int *******)0x0;" (assignment_expression "pppppppiVar17 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3e0 = (int *******)0x0;" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar14 = pppppppiStack_3c8" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" ( (binary_expression "pcStack_3d8 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" ( (binary_expression "(int)ppppppiVar21[0x37] + 1" (cast_expression "(int)ppppppiVar21[0x37]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ])) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (-1 < iVar2) goto LAB_0001c380;" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c380;" goto statement_identifier ;)) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar16 = (int *******)*puVar9;" (assignment_expression "pppppppiVar16 = (int *******)*puVar9" identifier = (cast_expression "(int *******)*puVar9" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puVar9" * identifier))) ;) (if_statement "if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;" if (parenthesized_expression "(pppppppiVar16 == (int *******)0x4)" ( (binary_expression "pppppppiVar16 == (int *******)0x4" identifier == (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001c13c;" goto statement_identifier ;)) (expression_statement "pppppppiVar25 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar25 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar16)" ( identifier ))))) ;) (expression_statement "pppppppiVar18 = pppppppiVar16;" (assignment_expression "pppppppiVar18 = pppppppiVar16" identifier = identifier) ;) (expression_statement "pppppppiVar24 = pppppppiVar25;" (assignment_expression "pppppppiVar24 = pppppppiVar25" identifier = identifier) ;) (labeled_statement "LAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" statement_identifier : (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);" (call_expression "FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16)" identifier (argument_list "(pppppppiVar25,pppppppiVar14,pppppppiVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "uStack_3a0 = 0x10000;" (assignment_expression "uStack_3a0 = 0x10000" identifier = number_literal) ;) (expression_statement "ppppppiStack_3a4 = ppppppiVar5;" (assignment_expression "ppppppiStack_3a4 = ppppppiVar5" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" * (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7dac)" ( (binary_expression "pcStack_3d8 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar27,1,0xffffffff)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" { (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" if (parenthesized_expression "(*piVar4 != 4)" ( (binary_expression "*piVar4 != 4" (pointer_expression "*piVar4" * identifier) != number_literal) )) (compound_statement "{\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" { (labeled_statement "LAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];" statement_identifier : (expression_statement "pppppppiVar18 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;)) (expression_statement "uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();" (assignment_expression "uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);" (call_expression "FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6)" identifier (argument_list "(pppppppiVar18,pppppppiVar14,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001bdcc;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" else (compound_statement "{\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" { (labeled_statement "LAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;" statement_identifier : (expression_statement "pppppppiVar14 = &ppppppiStack_3b0;" (assignment_expression "pppppppiVar14 = &ppppppiStack_3b0" identifier = (pointer_expression "&ppppppiStack_3b0" & identifier)) ;)) (expression_statement "(**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);" (call_expression "(**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d18))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d18)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d18)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d18)" ( (binary_expression "pcStack_3d8 + -0x7d18" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar21[0x37],pppppppiVar14,8)" ( (subscript_expression "ppppppiVar21[0x37]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (if_statement "if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" if (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" ( (binary_expression "pppppppiVar25 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" { (expression_statement "FUN_0001478c(pppppppiVar11);" (call_expression "FUN_0001478c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;) (expression_statement "FUN_00015e38(pppppppiVar11);" (call_expression "FUN_00015e38(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;) })) (expression_statement "ppppppiVar5 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar5 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar25 = (int *******)0x0;" (assignment_expression "pppppppiVar25 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" if (parenthesized_expression "((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0))))" ( (binary_expression "(ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))" (parenthesized_expression "(ppppppiVar5 != (int ******)0x2)" ( (binary_expression "ppppppiVar5 != (int ******)0x2" identifier != (cast_expression "(int ******)0x2" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))" ( (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0))" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)" (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" * (cast_expression "(char *)(pppppppiVar11 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x3d)" ( (binary_expression "pppppppiVar11 + 0x3d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) ))) )) (compound_statement "{\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" { (if_statement "if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" if (parenthesized_expression "(0 < (int)unaff_s7)" ( (binary_expression "0 < (int)unaff_s7" number_literal < (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" { (expression_statement "iVar2 = FUN_0002186c();" (assignment_expression "iVar2 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" if (parenthesized_expression "((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25])" ( (binary_expression "(int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar2 - (int)pppppppiVar11[0x25]" identifier - (cast_expression "(int)pppppppiVar11[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x25]" identifier [ number_literal ])))) )) (compound_statement "{\n        unaff_s7 = (int *******)0x0;\n      }" { (expression_statement "unaff_s7 = (int *******)0x0;" (assignment_expression "unaff_s7 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" else (compound_statement "{\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" { (expression_statement "unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));" (assignment_expression "unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" identifier = (cast_expression "(int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" ( (binary_expression "(int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25])" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "(iVar2 - (int)pppppppiVar11[0x25])" ( (binary_expression "iVar2 - (int)pppppppiVar11[0x25]" identifier - (cast_expression "(int)pppppppiVar11[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x25]" identifier [ number_literal ]))) ))) )))) ;) }))) (expression_statement "ppppppiVar5 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar5 = pppppppiVar11[0x2e]" identifier = (subscript_expression "pppppppiVar11[0x2e]" identifier [ number_literal ])) ;) (expression_statement "pppppppiStack_3b8 = unaff_s7;" (assignment_expression "pppppppiStack_3b8 = unaff_s7" identifier = identifier) ;) (goto_statement "goto LAB_0001bc90;" goto statement_identifier ;) })) (expression_statement "pppppppiVar16 = (int *******)0x0;" (assignment_expression "pppppppiVar16 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;" if (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" ( (binary_expression "pppppppiVar24 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001be20;" goto statement_identifier ;)) (labeled_statement "LAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];" statement_identifier : (expression_statement "ppppppiStack_3a4 = pppppppiVar11[0x29];" (assignment_expression "ppppppiStack_3a4 = pppppppiVar11[0x29]" identifier = (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) ;)) (expression_statement "uStack_3a0 = 0;" (assignment_expression "uStack_3a0 = 0" identifier = number_literal) ;) (if_statement "if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x1)" ( (binary_expression "ppppppiVar5 == (int ******)0x1" identifier == (cast_expression "(int ******)0x1" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      uStack_3a0 = 0x60000;\n    }" { (expression_statement "uStack_3a0 = 0x60000;" (assignment_expression "uStack_3a0 = 0x60000" identifier = number_literal) ;) }) (else_clause "else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" else (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      uStack_3a0 = 0x30000;\n    }" { (expression_statement "uStack_3a0 = 0x30000;" (assignment_expression "uStack_3a0 = 0x30000" identifier = number_literal) ;) }) (else_clause "else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" else (if_statement "if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x2)" ( (binary_expression "ppppppiVar5 == (int ******)0x2" identifier == (cast_expression "(int ******)0x2" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      uStack_3a0 = 0x20000;\n    }" { (expression_statement "uStack_3a0 = 0x20000;" (assignment_expression "uStack_3a0 = 0x20000" identifier = number_literal) ;) }) (else_clause "else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" else (if_statement "if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x3)" ( (binary_expression "ppppppiVar5 == (int ******)0x3" identifier == (cast_expression "(int ******)0x3" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)))))))) (if_statement "if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" if (parenthesized_expression "(pppppppiVar16 == (int *******)0x0)" ( (binary_expression "pppppppiVar16 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" else (compound_statement "{\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" { (expression_statement "iVar2 = (int)pppppppiStack_3b8 * 1000;" (assignment_expression "iVar2 = (int)pppppppiStack_3b8 * 1000" identifier = (binary_expression "(int)pppppppiStack_3b8 * 1000" (cast_expression "(int)pppppppiStack_3b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) }))) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" * (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7dac)" ( (binary_expression "pcStack_3d8 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar27,1,iVar2)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" { (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar4 != 4) goto LAB_0001bd98;" if (parenthesized_expression "(*piVar4 != 4)" ( (binary_expression "*piVar4 != 4" (pointer_expression "*piVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_0001bd98;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];" statement_identifier : (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" else (compound_statement "{\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" { (expression_statement "pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);" (assignment_expression "pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f)" identifier = (cast_expression "(int *******)((uStack_3a0 << 0x1d) >> 0x1f)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uStack_3a0 << 0x1d) >> 0x1f)" ( (binary_expression "(uStack_3a0 << 0x1d) >> 0x1f" (parenthesized_expression "(uStack_3a0 << 0x1d)" ( (binary_expression "uStack_3a0 << 0x1d" identifier << number_literal) )) >> number_literal) )))) ;) (expression_statement "pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);" (assignment_expression "pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0)" identifier = (cast_expression "(int *******)(uint)((uStack_3a0 & 0xba) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((uStack_3a0 & 0xba) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uStack_3a0 & 0xba) != 0)" ( (binary_expression "(uStack_3a0 & 0xba) != 0" (parenthesized_expression "(uStack_3a0 & 0xba)" ( (binary_expression "uStack_3a0 & 0xba" identifier & number_literal) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);" (assignment_expression "pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1)" identifier = (cast_expression "(int *******)((int)uStack_3a0._2_2_ & 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)uStack_3a0._2_2_ & 1)" ( (binary_expression "(int)uStack_3a0._2_2_ & 1" (cast_expression "(int)uStack_3a0._2_2_" ( (type_descriptor "int" primitive_type) ) (field_expression "uStack_3a0._2_2_" identifier . field_identifier)) & number_literal) )))) ;) (expression_statement "iVar2 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar2 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;" if (parenthesized_expression "(ppppppiVar10 == (int ******)0x14)" ( (binary_expression "ppppppiVar10 == (int ******)0x14" identifier == (cast_expression "(int ******)0x14" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001c01c;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;) })) (expression_statement "pppppppiStack_3b8 = (int *******)0x0;" (assignment_expression "pppppppiStack_3b8 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_0001bc90:\n  uStack_3b4 = 0;" statement_identifier : (expression_statement "uStack_3b4 = 0;" (assignment_expression "uStack_3b4 = 0" identifier = number_literal) ;)) (expression_statement "pppppppiVar16 = (int *******)&pppppppiStack_3b8;" (assignment_expression "pppppppiVar16 = (int *******)&pppppppiStack_3b8" identifier = (cast_expression "(int *******)&pppppppiStack_3b8" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppiStack_3b8" & identifier))) ;) (if_statement "if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;" if (parenthesized_expression "(pppppppiVar24 != (int *******)0x0)" ( (binary_expression "pppppppiVar24 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bc98;" goto statement_identifier ;)) (labeled_statement "LAB_0001be20:\n  unaff_s6 = appppppiStack_31c;" statement_identifier : (expression_statement "unaff_s6 = appppppiStack_31c;" (assignment_expression "unaff_s6 = appppppiStack_31c" identifier = identifier) ;)) (expression_statement "pppppppiVar7 = appppppiStack_39c;" (assignment_expression "pppppppiVar7 = appppppiStack_39c" identifier = identifier) ;) (do_statement "do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);" do (compound_statement "{\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  }" { (expression_statement "*pppppppiVar7 = (int ******)0x0;" (assignment_expression "*pppppppiVar7 = (int ******)0x0" (pointer_expression "*pppppppiVar7" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar7 = pppppppiVar7 + 1;" (assignment_expression "pppppppiVar7 = pppppppiVar7 + 1" identifier = (binary_expression "pppppppiVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(unaff_s6 != pppppppiVar7)" ( (binary_expression "unaff_s6 != pppppppiVar7" identifier != identifier) )) ;) (expression_statement "unaff_s7 = appppppiStack_29c;" (assignment_expression "unaff_s7 = appppppiStack_29c" identifier = identifier) ;) (expression_statement "pppppppiVar7 = unaff_s6;" (assignment_expression "pppppppiVar7 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);" do (compound_statement "{\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  }" { (expression_statement "*pppppppiVar7 = (int ******)0x0;" (assignment_expression "*pppppppiVar7 = (int ******)0x0" (pointer_expression "*pppppppiVar7" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar7 = pppppppiVar7 + 1;" (assignment_expression "pppppppiVar7 = pppppppiVar7 + 1" identifier = (binary_expression "pppppppiVar7 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar8 = unaff_s7;" (assignment_expression "pppppppiVar8 = unaff_s7" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s7 != pppppppiVar7)" ( (binary_expression "unaff_s7 != pppppppiVar7" identifier != identifier) )) ;) (do_statement "do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);" do (compound_statement "{\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  }" { (expression_statement "*pppppppiVar8 = (int ******)0x0;" (assignment_expression "*pppppppiVar8 = (int ******)0x0" (pointer_expression "*pppppppiVar8" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar8 = pppppppiVar8 + 1;" (assignment_expression "pppppppiVar8 = pppppppiVar8 + 1" identifier = (binary_expression "pppppppiVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(appppppiStack_21c != pppppppiVar8)" ( (binary_expression "appppppiStack_21c != pppppppiVar8" identifier != identifier) )) ;) (expression_statement "iStack_3c0 = -1;" (assignment_expression "iStack_3c0 = -1" identifier = number_literal) ;) (if_statement "if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x1)" ( (binary_expression "ppppppiVar5 != (int ******)0x1" identifier != (cast_expression "(int ******)0x1" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" { (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }" { (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3c8 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c8 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "pppppppiStack_3c4 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c4 = pppppppiVar16" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" identifier (argument_list "(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&iStack_3c0" & identifier) )))) ;) (if_statement "if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }" { (expression_statement "iVar2 = iStack_3c0 + 1;" (assignment_expression "iVar2 = iStack_3c0 + 1" identifier = (binary_expression "iStack_3c0 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar7 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar7 = pppppppiStack_3c8" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiStack_3c4;" (assignment_expression "pppppppiVar16 = pppppppiStack_3c4" identifier = identifier) ;) (goto_statement "goto LAB_0001be8c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);" statement_identifier : (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "FUN_00020df0(pppppppiVar11[6]);" (call_expression "FUN_00020df0(pppppppiVar11[6])" identifier (argument_list "(pppppppiVar11[6])" ( (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" else (compound_statement "{\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" { (if_statement "if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x2)" ( (binary_expression "ppppppiVar5 == (int ******)0x2" identifier == (cast_expression "(int ******)0x2" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" { (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3c8 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar16" identifier = identifier) ;) (expression_statement "pppppppiStack_3c4 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c4 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&iStack_3c0" & identifier) )))) ;) (if_statement "if (iVar2 != 0) goto LAB_0001c1ec;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001c1ec;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;) })) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "pppppppiVar7 = appppppiStack_39c;" (assignment_expression "pppppppiVar7 = appppppiStack_39c" identifier = identifier) ;) (if_statement "if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x3)" ( (binary_expression "ppppppiVar5 != (int ******)0x3" identifier != (cast_expression "(int ******)0x3" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001be8c;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;) })) (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" identifier = (cast_expression "(int *******)0x400" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppiStack_3c8 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar16" identifier = identifier) ;) (expression_statement "pppppppiStack_3c4 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c4 = appppppiStack_39c" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" identifier = (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" identifier (argument_list "(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) , identifier , (pointer_expression "&iStack_3c0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001c364;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001c364;" goto statement_identifier ;)) (labeled_statement "LAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;" statement_identifier : (expression_statement "iVar2 = iStack_3c0 + 1;" (assignment_expression "iVar2 = iStack_3c0 + 1" identifier = (binary_expression "iStack_3c0 + 1" identifier + number_literal)) ;)) (expression_statement "pppppppiVar7 = pppppppiStack_3c4;" (assignment_expression "pppppppiVar7 = pppppppiStack_3c4" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar16 = pppppppiStack_3c8" identifier = identifier) ;) (labeled_statement "LAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;" statement_identifier : (expression_statement "pppppppiVar14 = pppppppiVar7;" (assignment_expression "pppppppiVar14 = pppppppiVar7" identifier = identifier) ;)) (expression_statement "pppppppiVar17 = unaff_s7;" (assignment_expression "pppppppiVar17 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_3e0 = pppppppiVar16;" (assignment_expression "pppppppiStack_3e0 = pppppppiVar16" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" ( (binary_expression "pcStack_3d8 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(iVar2,pppppppiVar14,unaff_s6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" { (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar16 = (int *******)*puVar9;" (assignment_expression "pppppppiVar16 = (int *******)*puVar9" identifier = (cast_expression "(int *******)*puVar9" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "unaff_s6 = pppppppiVar16;" (assignment_expression "unaff_s6 = pppppppiVar16" identifier = identifier) ;) (if_statement "if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }" if (parenthesized_expression "(pppppppiVar16 != (int *******)0x4)" ( (binary_expression "pppppppiVar16 != (int *******)0x4" identifier != (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }" { (expression_statement "pppppppiVar25 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar25 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar16)" ( identifier ))))) ;) (expression_statement "pppppppiVar18 = pppppppiVar25;" (assignment_expression "pppppppiVar18 = pppppppiVar25" identifier = identifier) ;) (goto_statement "goto LAB_0001c18c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001c1b0;" goto statement_identifier ;) })) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29])" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29])" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d84)" ( (binary_expression "pcStack_3d8 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar11[0x29])" ( (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ]) )))) ;) (expression_statement "unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;" (assignment_expression "unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" identifier = (cast_expression "(int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" ( (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) & number_literal) ))) & (cast_expression "(uint)appppppiStack_39c[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "appppppiStack_39c[iVar2]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d84)" ( (binary_expression "pcStack_3d8 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;" (assignment_expression "unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" identifier = (cast_expression "(int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" ( (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) & number_literal) ))) & (cast_expression "(uint)appppppiStack_31c[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "appppppiStack_31c[iVar2]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))()" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d84)" ( (binary_expression "pcStack_3d8 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);" (assignment_expression "pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" identifier = (cast_expression "(int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" ( (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2])" ( (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" ( (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[0x29]" identifier [ number_literal ])) & number_literal) ))) & (cast_expression "(uint)appppppiStack_29c[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "appppppiStack_29c[iVar2]" identifier [ identifier ]))) )) != number_literal) ))))) ;) (expression_statement "pppppppiVar14 = unaff_s6;" (assignment_expression "pppppppiVar14 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiVar16 = unaff_s7;" (assignment_expression "pppppppiVar16 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar2 = FUN_0001868c(pppppppiVar11)" identifier = (call_expression "FUN_0001868c(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0001bcc4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bcc4;" goto statement_identifier ;)) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" identifier = (subscript_expression "pppppppiVar11[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;" if (parenthesized_expression "(ppppppiVar10 != (int ******)0x14)" ( (binary_expression "ppppppiVar10 != (int ******)0x14" identifier != (cast_expression "(int ******)0x14" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001bc2c;" goto statement_identifier ;)) (labeled_statement "LAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" statement_identifier : (if_statement "if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" if (parenthesized_expression "((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'))" ( (binary_expression "(ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (parenthesized_expression "(ppppppiVar21[0x12] != (int *****)0x0)" ( (binary_expression "ppppppiVar21[0x12] != (int *****)0x0" (subscript_expression "ppppppiVar21[0x12]" identifier [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" ( (comma_expression "pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'" (assignment_expression "pppppppiVar17 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "*(char *)(pppppppiVar11 + 0x28) != '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x28)" * (cast_expression "(char *)(pppppppiVar11 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x28)" ( (binary_expression "pppppppiVar11 + 0x28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" { (expression_statement "pppppppiVar16 = pppppppiVar11 + 0xb;" (assignment_expression "pppppppiVar16 = pppppppiVar11 + 0xb" identifier = (binary_expression "pppppppiVar11 + 0xb" identifier + number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiVar11;" (assignment_expression "pppppppiVar14 = pppppppiVar11" identifier = identifier) ;) (expression_statement "(*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);" (call_expression "(*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13])" (parenthesized_expression "(*(code *)ppppppiVar21[0x12])" ( (pointer_expression "*(code *)ppppppiVar21[0x12]" * (cast_expression "(code *)ppppppiVar21[0x12]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppiVar21[0x12]" identifier [ number_literal ]))) )) (argument_list "(ppppppiVar21[0x13])" ( (subscript_expression "ppppppiVar21[0x13]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "*(undefined1 *)(pppppppiVar11 + 0x28) = 0;" (assignment_expression "*(undefined1 *)(pppppppiVar11 + 0x28) = 0" (pointer_expression "*(undefined1 *)(pppppppiVar11 + 0x28)" * (cast_expression "(undefined1 *)(pppppppiVar11 + 0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x28)" ( (binary_expression "pppppppiVar11 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s6 = (int *******)pppppppiVar11[0x38];" (assignment_expression "unaff_s6 = (int *******)pppppppiVar11[0x38]" identifier = (cast_expression "(int *******)pppppppiVar11[0x38]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[0x38]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" if (parenthesized_expression "(((uint)pppppppiVar11[6][0x3e] & 0x42) == 2)" ( (binary_expression "((uint)pppppppiVar11[6][0x3e] & 0x42) == 2" (parenthesized_expression "((uint)pppppppiVar11[6][0x3e] & 0x42)" ( (binary_expression "(uint)pppppppiVar11[6][0x3e] & 0x42" (cast_expression "(uint)pppppppiVar11[6][0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[6][0x3e]" (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }" { (expression_statement "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);" (assignment_expression "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(undefined4 *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" ( (binary_expression "pcStack_3d8 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);" (assignment_expression "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" identifier = (cast_expression "(int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);" do (compound_statement "{\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    }" { (while_statement "while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }" { (expression_statement "unaff_s7 = appppppiStack_21c;" (assignment_expression "unaff_s7 = appppppiStack_21c" identifier = identifier) ;) (expression_statement "pppppppiVar25 = unaff_s7;" (assignment_expression "pppppppiVar25 = unaff_s7" identifier = identifier) ;) (if_statement "if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;" if (parenthesized_expression "((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0)" (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0))" ( (binary_expression "(unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)" (parenthesized_expression "(unaff_s6[8] == (int ******)0x0)" ( (binary_expression "unaff_s6[8] == (int ******)0x0" (subscript_expression "unaff_s6[8]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)" ( (comma_expression "pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0" (assignment_expression "pppppppiVar26 = appppppiStack_19c" identifier = identifier) , (binary_expression "unaff_s6[9] == (int ******)0x0" (subscript_expression "unaff_s6[9]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) && (parenthesized_expression "(unaff_s6[10] == (int ******)0x0)" ( (binary_expression "unaff_s6[10] == (int ******)0x0" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "(unaff_s6[0xb] == (int ******)0x0)" ( (binary_expression "unaff_s6[0xb] == (int ******)0x0" (subscript_expression "unaff_s6[0xb]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;)) (do_statement "do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);" do (compound_statement "{\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        }" { (expression_statement "pppppppiVar26 = appppppiStack_19c;" (assignment_expression "pppppppiVar26 = appppppiStack_19c" identifier = identifier) ;) (expression_statement "*pppppppiVar25 = (int ******)0x0;" (assignment_expression "*pppppppiVar25 = (int ******)0x0" (pointer_expression "*pppppppiVar25" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar25 = pppppppiVar25 + 1;" (assignment_expression "pppppppiVar25 = pppppppiVar25 + 1" identifier = (binary_expression "pppppppiVar25 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar18 = appppppiStack_11c;" (assignment_expression "pppppppiVar18 = appppppiStack_11c" identifier = identifier) ;) (expression_statement "pppppppiVar14 = pppppppiVar26;" (assignment_expression "pppppppiVar14 = pppppppiVar26" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar26 != pppppppiVar25)" ( (binary_expression "pppppppiVar26 != pppppppiVar25" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);" do (compound_statement "{\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        }" { (expression_statement "*pppppppiVar14 = (int ******)0x0;" (assignment_expression "*pppppppiVar14 = (int ******)0x0" (pointer_expression "*pppppppiVar14" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar14 = pppppppiVar14 + 1;" (assignment_expression "pppppppiVar14 = pppppppiVar14 + 1" identifier = (binary_expression "pppppppiVar14 + 1" identifier + number_literal)) ;) (expression_statement "pppppppiVar25 = pppppppiVar18;" (assignment_expression "pppppppiVar25 = pppppppiVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pppppppiVar18 != pppppppiVar14)" ( (binary_expression "pppppppiVar18 != pppppppiVar14" identifier != identifier) )) ;) (do_statement "do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);" do (compound_statement "{\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        }" { (expression_statement "*pppppppiVar25 = (int ******)0x0;" (assignment_expression "*pppppppiVar25 = (int ******)0x0" (pointer_expression "*pppppppiVar25" * identifier) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar25 = pppppppiVar25 + 1;" (assignment_expression "pppppppiVar25 = pppppppiVar25 + 1" identifier = (binary_expression "pppppppiVar25 + 1" identifier + number_literal)) ;) (expression_statement "ppppppiVar27 = (int ******)0xffffffff;" (assignment_expression "ppppppiVar27 = (int ******)0xffffffff" identifier = (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) while (parenthesized_expression "(pppppppiVar25 != &ppppppiStack_9c)" ( (binary_expression "pppppppiVar25 != &ppppppiStack_9c" identifier != (pointer_expression "&ppppppiStack_9c" & identifier)) )) ;) (expression_statement "uStack_3dc = 0x400;" (assignment_expression "uStack_3dc = 0x400" identifier = number_literal) ;) (expression_statement "pppppppiStack_3e0 = &ppppppiStack_3bc;" (assignment_expression "pppppppiStack_3e0 = &ppppppiStack_3bc" identifier = (pointer_expression "&ppppppiStack_3bc" & identifier)) ;) (expression_statement "ppppppiStack_3bc = (int ******)0xffffffff;" (assignment_expression "ppppppiStack_3bc = (int ******)0xffffffff" identifier = (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00017e20(unaff_s6,unaff_s7);" (assignment_expression "iVar2 = FUN_00017e20(unaff_s6,unaff_s7)" identifier = (call_expression "FUN_00017e20(unaff_s6,unaff_s7)" identifier (argument_list "(unaff_s6,unaff_s7)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" { (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar11[6]);" (call_expression "FUN_00020df0(pppppppiVar11[6])" identifier (argument_list "(pppppppiVar11[6])" ( (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;) })) (if_statement "if (ppppppiStack_3bc != (int ******)0xffffffff) break;" if (parenthesized_expression "(ppppppiStack_3bc != (int ******)0xffffffff)" ( (binary_expression "ppppppiStack_3bc != (int ******)0xffffffff" identifier != (cast_expression "(int ******)0xffffffff" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;" statement_identifier : (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" identifier = identifier) ;)) (expression_statement "FUN_00018420(unaff_s6);" (call_expression "FUN_00018420(unaff_s6)" identifier (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "FUN_00018878(unaff_s6);" (call_expression "FUN_00018878(unaff_s6)" identifier (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" identifier = identifier) ;) })) (expression_statement "pppppppiStack_3e0 = (int *******)0x0;" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }" if (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]))" ( (binary_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0')" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) != '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" * (cast_expression "(char *)(pppppppiVar11 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x3d)" ( (binary_expression "pppppppiVar11 + 0x3d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" ( (comma_expression "pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "unaff_s6[10] < unaff_s6[8]" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) < (subscript_expression "unaff_s6[8]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }" { (expression_statement "pppppppiStack_3e0 = &ppppppiStack_3b0;" (assignment_expression "pppppppiStack_3e0 = &ppppppiStack_3b0" identifier = (pointer_expression "&ppppppiStack_3b0" & identifier)) ;) (expression_statement "ppppppiStack_3b0 = (int ******)0x0;" (assignment_expression "ppppppiStack_3b0 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "uStack_3ac = 0;" (assignment_expression "uStack_3ac = 0" identifier = number_literal) ;) })) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" identifier = identifier) ;) (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" ( (binary_expression "pcStack_3d8 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "((int)ppppppiStack_3bc + 1)" ( (binary_expression "(int)ppppppiStack_3bc + 1" (cast_expression "(int)ppppppiStack_3bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (-1 < iVar2) goto LAB_0001c4bc;" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c4bc;" goto statement_identifier ;)) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar18 = (int *******)*puVar9;" (assignment_expression "pppppppiVar18 = (int *******)*puVar9" identifier = (cast_expression "(int *******)*puVar9" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*puVar9" * identifier))) ;) }) while (parenthesized_expression "(pppppppiVar18 == (int *******)0x4)" ( (binary_expression "pppppppiVar18 == (int *******)0x4" identifier == (cast_expression "(int *******)0x4" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (expression_statement "ppppppiVar21 = pppppppiVar11[6];" (assignment_expression "ppppppiVar21 = pppppppiVar11[6]" identifier = (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar18)" ( identifier ))))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppiVar16 = pppppppiVar18;" (assignment_expression "pppppppiVar16 = pppppppiVar18" identifier = identifier) ;) (expression_statement "FUN_00020df0(ppppppiVar21);" (call_expression "FUN_00020df0(ppppppiVar21)" identifier (argument_list "(ppppppiVar21)" ( identifier ))) ;) }) (else_clause "else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" else (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" if (parenthesized_expression "(((uint)pppppppiVar11[6][0x3e] & 2) != 0)" ( (binary_expression "((uint)pppppppiVar11[6][0x3e] & 2) != 0" (parenthesized_expression "((uint)pppppppiVar11[6][0x3e] & 2)" ( (binary_expression "(uint)pppppppiVar11[6][0x3e] & 2" (cast_expression "(uint)pppppppiVar11[6][0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar11[6][0x3e]" (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]) [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" { (expression_statement "pppppppiVar14 = appppppiStack_11c;" (assignment_expression "pppppppiVar14 = appppppiStack_11c" identifier = identifier) ;) (expression_statement "appppppiStack_11c[1] = (int ******)0x0;" (assignment_expression "appppppiStack_11c[1] = (int ******)0x0" (subscript_expression "appppppiStack_11c[1]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" ( (binary_expression "pcStack_3d8 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "appppppiStack_11c[3] = (int ******)0x0;" (assignment_expression "appppppiStack_11c[3] = (int ******)0x0" (subscript_expression "appppppiStack_11c[3]" identifier [ number_literal ]) = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);" (assignment_expression "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" identifier = (cast_expression "(int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" ( (binary_expression "pcStack_3d8 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);" (assignment_expression "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac)" identifier = (pointer_expression "*(undefined4 *)(pcStack_3d8 + -0x7fac)" * (cast_expression "(undefined4 *)(pcStack_3d8 + -0x7fac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fac)" ( (binary_expression "pcStack_3d8 + -0x7fac" identifier + number_literal) ))))) ;) (expression_statement "appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];" (assignment_expression "appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29]" (subscript_expression "appppppiStack_11c[0]" identifier [ number_literal ]) = (cast_expression "(int ******)(*unaff_s6)[0x29]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "(*unaff_s6)[0x29]" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) [ number_literal ]))) ;) (expression_statement "appppppiStack_11c[2] = unaff_s6[0x10];" (assignment_expression "appppppiStack_11c[2] = unaff_s6[0x10]" (subscript_expression "appppppiStack_11c[2]" identifier [ number_literal ]) = (subscript_expression "unaff_s6[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);" do (compound_statement "{\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    }" { (while_statement "while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }" { (if_statement "if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;" if (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0))))" ( (binary_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0))" ( (binary_expression "(unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)" (parenthesized_expression "(unaff_s6[8] == (int ******)0x0)" ( (binary_expression "unaff_s6[8] == (int ******)0x0" (subscript_expression "unaff_s6[8]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(unaff_s6[9] == (int ******)0x0)" ( (binary_expression "unaff_s6[9] == (int ******)0x0" (subscript_expression "unaff_s6[9]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))" ( (parenthesized_expression "(unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0))" ( (binary_expression "unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)" (binary_expression "unaff_s6[10] == (int ******)0x0" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) && (parenthesized_expression "(pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)" ( (comma_expression "pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0" (assignment_expression "pppppppiVar18 = pppppppiVar14" identifier = identifier) , (binary_expression "unaff_s6[0xb] == (int ******)0x0" (subscript_expression "unaff_s6[0xb]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) ))) )) (goto_statement "goto LAB_0001c074;" goto statement_identifier ;)) (expression_statement "FUN_00017b40(unaff_s6);" (call_expression "FUN_00017b40(unaff_s6)" identifier (argument_list "(unaff_s6)" ( identifier ))) ;) (if_statement "if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" if (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0')" ( (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" * (cast_expression "(char *)(pppppppiVar11 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppiVar11 + 0x3d)" ( (binary_expression "pppppppiVar11 + 0x3d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pppppppiVar16 = (int *******)0xffffffff;\n        }" { (expression_statement "pppppppiVar16 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar16 = (int *******)0xffffffff" identifier = (cast_expression "(int *******)0xffffffff" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" else (compound_statement "{\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" { (expression_statement "pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);" (assignment_expression "pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" identifier = (cast_expression "(int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((unaff_s6[10] < unaff_s6[8]) - 1)" ( (binary_expression "(unaff_s6[10] < unaff_s6[8]) - 1" (parenthesized_expression "(unaff_s6[10] < unaff_s6[8])" ( (binary_expression "unaff_s6[10] < unaff_s6[8]" (subscript_expression "unaff_s6[10]" identifier [ number_literal ]) < (subscript_expression "unaff_s6[8]" identifier [ number_literal ])) )) - number_literal) )))) ;) }))) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2)" identifier = (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" * (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7dac)" ( (binary_expression "pcStack_3d8 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar14,2)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 < 0) break;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00017c40(unaff_s6,pppppppiVar14);" (call_expression "FUN_00017c40(unaff_s6,pppppppiVar14)" identifier (argument_list "(unaff_s6,pppppppiVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_00018878();" (call_expression "FUN_00018878()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" identifier = (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" * (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" ( (binary_expression "pcStack_3d8 + -0x7e2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(*piVar4 == 4)" ( (binary_expression "*piVar4 == 4" (pointer_expression "*piVar4" * identifier) == number_literal) )) ;) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar11[6]" identifier = (cast_expression "(int *******)pppppppiVar11[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppiVar11[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();" (assignment_expression "pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))()" identifier = (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))()" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" ( (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" * (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" * (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" ( (binary_expression "pcStack_3d8 + -0x7ddc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" identifier = (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" ( (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" ( (binary_expression "pcStack_3d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00020df0(pppppppiVar18);" (call_expression "FUN_00020df0(pppppppiVar18)" identifier (argument_list "(pppppppiVar18)" ( identifier ))) ;) })))) (labeled_statement "LAB_0001c074:\n  FUN_00014600(pppppppiVar11);" statement_identifier : (expression_statement "FUN_00014600(pppppppiVar11);" (call_expression "FUN_00014600(pppppppiVar11)" identifier (argument_list "(pppppppiVar11)" ( identifier ))) ;)) (expression_statement "pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);" (assignment_expression "pcVar31 = *(code **)(pcStack_3d8 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_3d8 + -0x7df4)" * (cast_expression "(code **)(pcStack_3d8 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7df4)" ( (binary_expression "pcStack_3d8 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51)" * (cast_expression "(undefined1 *)((int)pppppppiVar11[0x38] + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppiVar11[0x38] + 0x51)" ( (binary_expression "(int)pppppppiVar11[0x38] + 0x51" (cast_expression "(int)pppppppiVar11[0x38]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppiVar11[0x38]" identifier [ number_literal ])) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar31)(pppppppiVar11);" (call_expression "(*pcVar31)(pppppppiVar11)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppppppiVar11)" ( identifier ))) ;) (labeled_statement "LAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }" statement_identifier : (if_statement "if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }" if (parenthesized_expression "(ppppppiStack_9c == (int ******)*piStack_3cc)" ( (binary_expression "ppppppiStack_9c == (int ******)*piStack_3cc" identifier == (cast_expression "(int ******)*piStack_3cc" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*piStack_3cc" * identifier))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);" (assignment_expression "pcVar31 = *(code **)(pcStack_3d8 + -0x7d78)" identifier = (pointer_expression "*(code **)(pcStack_3d8 + -0x7d78)" * (cast_expression "(code **)(pcStack_3d8 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3d8 + -0x7d78)" ( (binary_expression "pcStack_3d8 + -0x7d78" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = FUN_0001c688;" (assignment_expression "pcVar32 = FUN_0001c688" identifier = identifier) ;) (expression_statement "ppppppiVar5 = ppppppiStack_9c;" (assignment_expression "ppppppiVar5 = ppppppiStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = *(int **)(pcVar31 + 0x22c64);" (assignment_expression "piVar4 = *(int **)(pcVar31 + 0x22c64)" identifier = (pointer_expression "*(int **)(pcVar31 + 0x22c64)" * (cast_expression "(int **)(pcVar31 + 0x22c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c64)" ( (binary_expression "pcVar31 + 0x22c64" identifier + number_literal) ))))) ;) (expression_statement "iStack_41c = *piVar4;" (assignment_expression "iStack_41c = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(undefined1 *)(ppppppiVar5 + 0x39) = 0;" (assignment_expression "*(undefined1 *)(ppppppiVar5 + 0x39) = 0" (pointer_expression "*(undefined1 *)(ppppppiVar5 + 0x39)" * (cast_expression "(undefined1 *)(ppppppiVar5 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5 + 0x39)" ( (binary_expression "ppppppiVar5 + 0x39" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppppiStack_418 = pppppppiVar18;" (assignment_expression "pppppppiStack_418 = pppppppiVar18" identifier = identifier) ;) (expression_statement "ppppppiStack_414 = ppppppiVar21;" (assignment_expression "ppppppiStack_414 = ppppppiVar21" identifier = identifier) ;) (expression_statement "pppppppiStack_410 = pppppppiVar24;" (assignment_expression "pppppppiStack_410 = pppppppiVar24" identifier = identifier) ;) (expression_statement "uStack_40c = uVar15;" (assignment_expression "uStack_40c = uVar15" identifier = identifier) ;) (expression_statement "pppppppiStack_408 = pppppppiVar26;" (assignment_expression "pppppppiStack_408 = pppppppiVar26" identifier = identifier) ;) (expression_statement "ppppppiStack_404 = ppppppiVar27;" (assignment_expression "ppppppiStack_404 = ppppppiVar27" identifier = identifier) ;) (expression_statement "pppppppiStack_400 = unaff_s6;" (assignment_expression "pppppppiStack_400 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppiStack_3fc = unaff_s7;" (assignment_expression "pppppppiStack_3fc = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppiStack_3f8 = pppppppiVar11;" (assignment_expression "pppppppiStack_3f8 = pppppppiVar11" identifier = identifier) ;) (expression_statement "pcStack_3f4 = pcVar32;" (assignment_expression "pcStack_3f4 = pcVar32" identifier = identifier) ;) (if_statement "if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }" if (parenthesized_expression "(ppppppiVar5[0x37] != (int *****)0xffffffff)" ( (binary_expression "ppppppiVar5[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar5[0x37]" identifier [ number_literal ]) != (cast_expression "(int *****)0xffffffff" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }" { (expression_statement "iVar2 = (**(code **)(pcVar31 + 0x22c24))();" (assignment_expression "iVar2 = (**(code **)(pcVar31 + 0x22c24))()" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pppppiVar12 = ppppppiVar5[0x37];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x37]" identifier = (subscript_expression "ppppppiVar5[0x37]" identifier [ number_literal ])) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" if (parenthesized_expression "((int)pppppiVar12 < 0)" ( (binary_expression "(int)pppppiVar12 < 0" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22c90);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22c90)" * (cast_expression "(code **)(pcVar31 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c90)" ( (binary_expression "pcVar31 + 0x22c90" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" else (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22c90);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22c90)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22c90)" * (cast_expression "(code **)(pcVar31 + 0x22c90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c90)" ( (binary_expression "pcVar31 + 0x22c90" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }" { (expression_statement "(*pcVar32)(pppppiVar12,auStack_428,8);" (call_expression "(*pcVar32)(pppppiVar12,auStack_428,8)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppiVar12,auStack_428,8)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pppppiVar12 = ppppppiVar5[0x31];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x31]" identifier = (subscript_expression "ppppppiVar5[0x31]" identifier [ number_literal ])) ;) (if_statement "if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }" if (parenthesized_expression "((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0'))" ( (binary_expression "(pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')" (parenthesized_expression "(pppppiVar12 != (int *****)0xffffffff)" ( (binary_expression "pppppiVar12 != (int *****)0xffffffff" identifier != (cast_expression "(int *****)0xffffffff" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) && (parenthesized_expression "(*(char *)((int)ppppppiVar5 + 0xe1) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar5 + 0xe1) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xe1)" * (cast_expression "(char *)((int)ppppppiVar5 + 0xe1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xe1)" ( (binary_expression "(int)ppppppiVar5 + 0xe1" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }" { (expression_statement "iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(pppppiVar12)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(pppppiVar12)" ( identifier )))) ;) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" if (parenthesized_expression "((int)pppppiVar12 < 0)" ( (binary_expression "(int)pppppiVar12 < 0" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) }) (else_clause "else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" else (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" { (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" identifier = (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" number_literal << (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" ( (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & (cast_expression "(uint)pppppppiVar14[iVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[iVar2]" identifier [ identifier ])))) ;) }))) (if_statement "if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0001afec(ppppppiVar5);\n    }" { (expression_statement "FUN_0001afec(ppppppiVar5);" (call_expression "FUN_0001afec(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;) })) })) (if_statement "if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" if (parenthesized_expression "((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0))" ( (binary_expression "(((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)" (parenthesized_expression "(((uint)ppppppiVar5[0x3e] & 4) == 0)" ( (binary_expression "((uint)ppppppiVar5[0x3e] & 4) == 0" (parenthesized_expression "((uint)ppppppiVar5[0x3e] & 4)" ( (binary_expression "(uint)ppppppiVar5[0x3e] & 4" (cast_expression "(uint)ppppppiVar5[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppiVar5[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppppppiVar5[3] != (int *****)0x0)" ( (binary_expression "ppppppiVar5[3] != (int *****)0x0" (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) (compound_statement "{\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" { (expression_statement "iVar2 = *(int *)(pcVar31 + 0x229fc);" (assignment_expression "iVar2 = *(int *)(pcVar31 + 0x229fc)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x229fc)" * (cast_expression "(int *)(pcVar31 + 0x229fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x229fc)" ( (binary_expression "pcVar31 + 0x229fc" identifier + number_literal) ))))) ;) (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" identifier = (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);" do (compound_statement "{\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    }" { (expression_statement "ppppiVar28 = pppppiVar12[0x29];" (assignment_expression "ppppiVar28 = pppppiVar12[0x29]" identifier = (subscript_expression "pppppiVar12[0x29]" identifier [ number_literal ])) ;) (expression_statement "pppppiVar19 = (int *****)pppppiVar12[3];" (assignment_expression "pppppiVar19 = (int *****)pppppiVar12[3]" identifier = (cast_expression "(int *****)pppppiVar12[3]" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppiVar12[3]" identifier [ number_literal ]))) ;) (if_statement "if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }" if (parenthesized_expression "(ppppiVar28 != (int ****)0xffffffff)" ( (binary_expression "ppppiVar28 != (int ****)0xffffffff" identifier != (cast_expression "(int ****)0xffffffff" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }" { (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar28)" ( identifier )))) ;) (expression_statement "unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));" (assignment_expression "unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f))" identifier = (cast_expression "(int *******)(1 << ((uint)ppppiVar28 & 0x1f))" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(1 << ((uint)ppppiVar28 & 0x1f))" ( (binary_expression "1 << ((uint)ppppiVar28 & 0x1f)" number_literal << (parenthesized_expression "((uint)ppppiVar28 & 0x1f)" ( (binary_expression "(uint)ppppiVar28 & 0x1f" (cast_expression "(uint)ppppiVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "ppppppiVar10 = pppppppiVar14[iVar20];" (assignment_expression "ppppppiVar10 = pppppppiVar14[iVar20]" identifier = (subscript_expression "pppppppiVar14[iVar20]" identifier [ identifier ])) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar28)" ( identifier )))) ;) (expression_statement "ppppppiVar21 = pppppppiVar16[iVar20];" (assignment_expression "ppppppiVar21 = pppppppiVar16[iVar20]" identifier = (subscript_expression "pppppppiVar16[iVar20]" identifier [ identifier ])) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" ( (pointer_expression "**(code **)(pcVar31 + 0x22c24)" * (pointer_expression "*(code **)(pcVar31 + 0x22c24)" * (cast_expression "(code **)(pcVar31 + 0x22c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c24)" ( (binary_expression "pcVar31 + 0x22c24" identifier + number_literal) ))))) )) (argument_list "(ppppiVar28)" ( identifier )))) ;) (expression_statement "(*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);" (call_expression "(*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0)" (parenthesized_expression "(*(code *)(iVar2 + -0x7974))" ( (pointer_expression "*(code *)(iVar2 + -0x7974)" * (cast_expression "(code *)(iVar2 + -0x7974)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x7974)" ( (binary_expression "iVar2 + -0x7974" identifier + number_literal) )))) )) (argument_list "(pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0)" ( identifier , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar10) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar10)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar10" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar21) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar21)" ( (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar21" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)ppppppiVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) , (binary_expression "((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)pppppppiVar17[iVar20])" ( (binary_expression "(uint)unaff_s7 & (uint)pppppppiVar17[iVar20]" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppiVar17[iVar20]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar17[iVar20]" identifier [ identifier ]))) )) != number_literal) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar19;" (assignment_expression "pppppiVar12 = pppppiVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar19 != (int *****)0x0)" ( (binary_expression "pppppiVar19 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) })) (if_statement "if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" if (parenthesized_expression "(ppppppiVar5[0x42] != (int *****)0x0)" ( (binary_expression "ppppppiVar5[0x42] != (int *****)0x0" (subscript_expression "ppppppiVar5[0x42]" identifier [ number_literal ]) != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" { (expression_statement "unaff_s7 = (int *******)0x1;" (assignment_expression "unaff_s7 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppiVar12 = ppppppiVar5[0x42];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x42]" identifier = (subscript_expression "ppppppiVar5[0x42]" identifier [ number_literal ])) ;) (do_statement "do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);" do (compound_statement "{\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    }" { (expression_statement "pppppiVar19 = (int *****)pppppiVar12[2];" (assignment_expression "pppppiVar19 = (int *****)pppppiVar12[2]" identifier = (cast_expression "(int *****)pppppiVar12[2]" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppiVar12[2]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);" (call_expression "FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17)" identifier (argument_list "(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_00018878(pppppiVar12);" (call_expression "FUN_00018878(pppppiVar12)" identifier (argument_list "(pppppiVar12)" ( identifier ))) ;) (if_statement "if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }" if (parenthesized_expression "((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0))" ( (binary_expression "(((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)" (parenthesized_expression "(((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0))" ( (binary_expression "((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)" (parenthesized_expression "((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0))" ( (binary_expression "(pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)" (parenthesized_expression "(pppppiVar12[8] == (int ****)0x0)" ( (binary_expression "pppppiVar12[8] == (int ****)0x0" (subscript_expression "pppppiVar12[8]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) && (parenthesized_expression "(pppppiVar12[9] == (int ****)0x0)" ( (binary_expression "pppppiVar12[9] == (int ****)0x0" (subscript_expression "pppppiVar12[9]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ))) )) && (parenthesized_expression "(pppppiVar12[10] == (int ****)0x0)" ( (binary_expression "pppppiVar12[10] == (int ****)0x0" (subscript_expression "pppppiVar12[10]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ))) )) && (parenthesized_expression "(pppppiVar12[0xb] == (int ****)0x0)" ( (binary_expression "pppppiVar12[0xb] == (int ****)0x0" (subscript_expression "pppppiVar12[0xb]" identifier [ number_literal ]) == (cast_expression "(int ****)0x0" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ))) )) (compound_statement "{\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }" { (expression_statement "FUN_00014600(*pppppiVar12);" (call_expression "FUN_00014600(*pppppiVar12)" identifier (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22bb4);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22bb4)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22bb4)" * (cast_expression "(code **)(pcVar31 + 0x22bb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22bb4)" ( (binary_expression "pcVar31 + 0x22bb4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)pppppiVar12 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)pppppiVar12 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)pppppiVar12 + 0x51)" * (cast_expression "(undefined1 *)((int)pppppiVar12 + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppiVar12 + 0x51)" ( (binary_expression "(int)pppppiVar12 + 0x51" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar32)(*pppppiVar12);" (call_expression "(*pcVar32)(*pppppiVar12)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(*pppppiVar12)" ( (pointer_expression "*pppppiVar12" * identifier) ))) ;) })) (expression_statement "pppppiVar12 = pppppiVar19;" (assignment_expression "pppppiVar12 = pppppiVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pppppiVar19 != (int *****)0x0)" ( (binary_expression "pppppiVar19 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) })) (expression_statement "FUN_0001ab80(ppppppiVar5);" (call_expression "FUN_0001ab80(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;) (if_statement "if (iStack_41c == *piVar4) {\n    return 1;\n  }" if (parenthesized_expression "(iStack_41c == *piVar4)" ( (binary_expression "iStack_41c == *piVar4" identifier == (pointer_expression "*piVar4" * identifier)) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar31 = *(code **)(pcVar31 + 0x22c30);" (assignment_expression "pcVar31 = *(code **)(pcVar31 + 0x22c30)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22c30)" * (cast_expression "(code **)(pcVar31 + 0x22c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22c30)" ( (binary_expression "pcVar31 + 0x22c30" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = iStack_41c;" (assignment_expression "iVar2 = iStack_41c" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar30 = *(uint *)(iVar2 + 0xf8);" (assignment_expression "uVar30 = *(uint *)(iVar2 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xf8)" * (cast_expression "(uint *)(iVar2 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf8)" ( (binary_expression "iVar2 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar30 & 4;" (assignment_expression "uVar29 = uVar30 & 4" identifier = (binary_expression "uVar30 & 4" identifier & number_literal)) ;) (expression_statement "pppppppiVar25 = (int *******)(uVar30 & 0x8000);" (assignment_expression "pppppppiVar25 = (int *******)(uVar30 & 0x8000)" identifier = (cast_expression "(int *******)(uVar30 & 0x8000)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar30 & 0x8000)" ( (binary_expression "uVar30 & 0x8000" identifier & number_literal) )))) ;) (expression_statement "uVar3 = uVar30;" (assignment_expression "uVar3 = uVar30" identifier = identifier) ;) (if_statement "if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }" if (parenthesized_expression "(*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0)" ( (binary_expression "*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(iVar2 + 0x108)" * (cast_expression "(undefined4 **)(iVar2 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x108)" ( (binary_expression "iVar2 + 0x108" identifier + number_literal) )))) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }" { (expression_statement "unaff_s7 = (int *******)0x1;" (assignment_expression "unaff_s7 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar2 + 0x108);" (assignment_expression "puVar9 = *(undefined4 **)(iVar2 + 0x108)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x108)" * (cast_expression "(undefined4 **)(iVar2 + 0x108)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x108)" ( (binary_expression "iVar2 + 0x108" identifier + number_literal) ))))) ;) (do_statement "do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);" do (compound_statement "{\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    }" { (expression_statement "puVar22 = (undefined4 *)puVar9[2];" (assignment_expression "puVar22 = (undefined4 *)puVar9[2]" identifier = (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00018878(puVar9);" (call_expression "FUN_00018878(puVar9)" identifier (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "FUN_00014600(*puVar9);" (call_expression "FUN_00014600(*puVar9)" identifier (argument_list "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) ))) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)puVar9 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)puVar9 + 0x51)" * (cast_expression "(undefined1 *)((int)puVar9 + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x51)" ( (binary_expression "(int)puVar9 + 0x51" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar31 + 0x22818))(*puVar9);" (call_expression "(**(code **)(pcVar31 + 0x22818))(*puVar9)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22818))" ( (pointer_expression "**(code **)(pcVar31 + 0x22818)" * (pointer_expression "*(code **)(pcVar31 + 0x22818)" * (cast_expression "(code **)(pcVar31 + 0x22818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22818)" ( (binary_expression "pcVar31 + 0x22818" identifier + number_literal) ))))) )) (argument_list "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) ))) ;) (expression_statement "puVar9 = puVar22;" (assignment_expression "puVar9 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pppppppiVar14 = (int *******)0x0;" (assignment_expression "pppppppiVar14 = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xf8);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xf8)" * (cast_expression "(uint *)(iVar2 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf8)" ( (binary_expression "iVar2 + 0xf8" identifier + number_literal) ))))) ;) })) (if_statement "if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\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 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }" { (expression_statement "*(undefined1 *)(iVar2 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xe3)" * (cast_expression "(undefined1 *)(iVar2 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe3)" ( (binary_expression "iVar2 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar2);" (call_expression "FUN_00018028(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (expression_statement "iVar23 = iVar2 + 0xac;" (assignment_expression "iVar23 = iVar2 + 0xac" identifier = (binary_expression "iVar2 + 0xac" identifier + number_literal)) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22884))(iVar23)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" ( (pointer_expression "**(code **)(pcVar31 + 0x22884)" * (pointer_expression "*(code **)(pcVar31 + 0x22884)" * (cast_expression "(code **)(pcVar31 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22884)" ( (binary_expression "pcVar31 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "uVar15 = 0x191e;" (assignment_expression "uVar15 = 0x191e" identifier = number_literal) ;) (if_statement "if (iVar20 != 0) goto LAB_0001cf0c;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;)) (if_statement "if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;" if (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" ( (binary_expression "pppppppiVar25 == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cb94;" goto statement_identifier ;)) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0x14);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *******)(iVar2 + 0x14)" * (cast_expression "(int *******)(iVar2 + 0x14)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cba0;" goto statement_identifier ;)) (expression_statement "pppppiVar12 = ppppppiVar5[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x38]" identifier = (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ])) ;) (expression_statement "uVar30 = uVar30 & 2;" (assignment_expression "uVar30 = uVar30 & 2" identifier = (binary_expression "uVar30 & 2" identifier & number_literal)) ;) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cb6c;" goto statement_identifier ;)) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014)" identifier = (cast_expression "(int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(pcVar31 + 0x22638) + -0x4014)" ( (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;" statement_identifier : (if_statement "if (uVar30 == 0) goto LAB_0001cd7c;" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001cd7c;" goto statement_identifier ;))) (if_statement "if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }" { (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;" if (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" ( (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" * (cast_expression "(char *)(pppppiVar12 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppiVar12 + 0x14)" ( (binary_expression "pppppiVar12 + 0x14" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" ( (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001cd9c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" if (parenthesized_expression "(*(char *)((int)pppppiVar12 + 0x51) == '\0')" ( (binary_expression "*(char *)((int)pppppiVar12 + 0x51) == '\0'" (pointer_expression "*(char *)((int)pppppiVar12 + 0x51)" * (cast_expression "(char *)((int)pppppiVar12 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppiVar12 + 0x51)" ( (binary_expression "(int)pppppiVar12 + 0x51" (cast_expression "(int)pppppiVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" { (expression_statement "(**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);" (call_expression "(**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22744))" ( (pointer_expression "**(code **)(pcVar31 + 0x22744)" * (pointer_expression "*(code **)(pcVar31 + 0x22744)" * (cast_expression "(code **)(pcVar31 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22744)" ( (binary_expression "pcVar31 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(pppppiVar12[0xd],2)" ( (subscript_expression "pppppiVar12[0xd]" identifier [ number_literal ]) , number_literal ))) ;) (goto_statement "goto LAB_0001cb54;" goto statement_identifier ;) })) (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;" if (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" ( (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" * (cast_expression "(char *)(pppppiVar12 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppiVar12 + 0x14)" ( (binary_expression "pppppiVar12 + 0x14" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001cdb0;" goto statement_identifier ;)) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" ( (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;" statement_identifier : (expression_statement "*(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5 + 0x3f)" * (cast_expression "(char *)(ppppppiVar5 + 0x3f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5 + 0x3f)" ( (binary_expression "ppppppiVar5 + 0x3f" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "*(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;" (assignment_expression "*(char *)(iVar2 + 0xe3) = (char)pppppppiVar14" (pointer_expression "*(char *)(iVar2 + 0xe3)" * (cast_expression "(char *)(iVar2 + 0xe3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe3)" ( (binary_expression "iVar2 + 0xe3" identifier + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];" statement_identifier : (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;)) (if_statement "if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }" { (expression_statement "pppppiVar12 = ppppppiVar5[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x38]" identifier = (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ])) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cb18;" goto statement_identifier ;)) (labeled_statement "LAB_0001cb6c:\n    uVar15 = 0x1929;" statement_identifier : (expression_statement "uVar15 = 0x1929;" (assignment_expression "uVar15 = 0x1929" identifier = number_literal) ;)) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);" do (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    }" { (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0001cb94:\n      uVar15 = 0x1948;" statement_identifier : (expression_statement "uVar15 = 0x1948;" (assignment_expression "uVar15 = 0x1948" identifier = number_literal) ;)) }) while (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) )) ;) })) (labeled_statement "LAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);" statement_identifier : (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }" if (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }" { (do_statement "do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);" do (compound_statement "{\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    }" { (expression_statement "(**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);" (call_expression "(**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22744))" ( (pointer_expression "**(code **)(pcVar31 + 0x22744)" * (pointer_expression "*(code **)(pcVar31 + 0x22744)" * (cast_expression "(code **)(pcVar31 + 0x22744)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22744)" ( (binary_expression "pcVar31 + 0x22744" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar5[0x29],2)" ( (subscript_expression "ppppppiVar5[0x29]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "ppppppiVar5 = (int ******)0x0;" (assignment_expression "ppppppiVar5 = (int ******)0x0" identifier = (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }" if (parenthesized_expression "((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       )" ( (binary_expression "(uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)" (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) && (parenthesized_expression "(ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)" ( (comma_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) , (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }" { (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" identifier = (cast_expression "(int *******)0x1" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);" do (compound_statement "{\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      }" { (while_statement "while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }" while (parenthesized_expression "(pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')" ( (comma_expression "pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) , (binary_expression "*(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar5 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" ( (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }" { (expression_statement "iVar20 = (*pcVar32)(iVar23);" (assignment_expression "iVar20 = (*pcVar32)(iVar23)" identifier = (call_expression "(*pcVar32)(iVar23)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }" { (expression_statement "uVar15 = 0x195e;" (assignment_expression "uVar15 = 0x195e" identifier = number_literal) ;) (goto_statement "goto LAB_0001cd58;" goto statement_identifier ;) })) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2277c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2277c)" * (pointer_expression "*(code **)(pcVar31 + 0x2277c)" * (cast_expression "(code **)(pcVar31 + 0x2277c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2277c)" ( (binary_expression "pcVar31 + 0x2277c" identifier + number_literal) ))))) )) (argument_list "(ppppppiVar5[0x16],0)" ( (subscript_expression "ppppppiVar5[0x16]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar20 != 0) goto LAB_0001cf30;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22884))(iVar23)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" ( (pointer_expression "**(code **)(pcVar31 + 0x22884)" * (pointer_expression "*(code **)(pcVar31 + 0x22884)" * (cast_expression "(code **)(pcVar31 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22884)" ( (binary_expression "pcVar31 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }" { (expression_statement "uVar15 = 0x1961;" (assignment_expression "uVar15 = 0x1961" identifier = number_literal) ;) (goto_statement "goto LAB_0001cf0c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1" (pointer_expression "*(undefined1 *)((int)ppppppiVar5 + 0xaa)" * (cast_expression "(undefined1 *)((int)ppppppiVar5 + 0xaa)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" ( (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (if_statement "if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cc48;" goto statement_identifier ;)) })) (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" ( (binary_expression "ppppppiVar5 != (int ******)0x0" identifier != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) })) })) (labeled_statement "LAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);" statement_identifier : (expression_statement "iVar20 = (*pcVar32)(iVar23);" (assignment_expression "iVar20 = (*pcVar32)(iVar23)" identifier = (call_expression "(*pcVar32)(iVar23)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;)) (if_statement "if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }" { (if_statement "if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }" if (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" ( (binary_expression "pppppppiVar25 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }" { (expression_statement "*(undefined1 *)(iVar2 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xe3)" * (cast_expression "(undefined1 *)(iVar2 + 0xe3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xe3)" ( (binary_expression "iVar2 + 0xe3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00018028(iVar2);" (call_expression "FUN_00018028(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (do_statement "do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);" do (compound_statement "{\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    }" { (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }" { (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }" if (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" ( (binary_expression "ppppppiVar5 == (int ******)0x0" identifier == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }" { (expression_statement "iVar2 = FUN_0001ab80(iVar2);" (assignment_expression "iVar2 = FUN_0001ab80(iVar2)" identifier = (call_expression "FUN_0001ab80(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;" if (parenthesized_expression "(((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))" ( (binary_expression "((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0')" (parenthesized_expression "((*(uint *)(iVar2 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar2 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar2 + 0xf8) & 4)" ( (binary_expression "*(uint *)(iVar2 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar2 + 0xf8)" * (cast_expression "(uint *)(iVar2 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xf8)" ( (binary_expression "iVar2 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)((int)ppppppiVar5 + 0xaa) == '\0')" ( (binary_expression "*(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xaa)" * (cast_expression "(char *)((int)ppppppiVar5 + 0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" ( (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001cf30;" goto statement_identifier ;)) (expression_statement "pppppppiVar14 = (int *******)ppppppiVar5[6];" (assignment_expression "pppppppiVar14 = (int *******)ppppppiVar5[6]" identifier = (cast_expression "(int *******)ppppppiVar5[6]" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "ppppppiVar5[6]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;" if (parenthesized_expression "(((uint)pppppppiVar14[0x3e] & 4) == 0)" ( (binary_expression "((uint)pppppppiVar14[0x3e] & 4) == 0" (parenthesized_expression "((uint)pppppppiVar14[0x3e] & 4)" ( (binary_expression "(uint)pppppppiVar14[0x3e] & 4" (cast_expression "(uint)pppppppiVar14[0x3e]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppiVar14[0x3e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_000140b4(ppppppiVar5);" (call_expression "FUN_000140b4(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *******)(iVar2 + 0xc)" * (cast_expression "(int *******)(iVar2 + 0xc)" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pppppppiVar25 = pppppppiVar14 + 0x2b;" (assignment_expression "pppppppiVar25 = pppppppiVar14 + 0x2b" identifier = (binary_expression "pppppppiVar14 + 0x2b" identifier + number_literal)) ;) (expression_statement "FUN_00014148(ppppppiVar5,3);" (call_expression "FUN_00014148(ppppppiVar5,3)" identifier (argument_list "(ppppppiVar5,3)" ( identifier , number_literal ))) ;) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25)" identifier = (call_expression "(**(code **)(pcVar31 + 0x22884))(pppppppiVar25)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" ( (pointer_expression "**(code **)(pcVar31 + 0x22884)" * (pointer_expression "*(code **)(pcVar31 + 0x22884)" * (cast_expression "(code **)(pcVar31 + 0x22884)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22884)" ( (binary_expression "pcVar31 + 0x22884" identifier + number_literal) ))))) )) (argument_list "(pppppppiVar25)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }" { (do_statement "do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );" do (compound_statement "{\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        }" { (expression_statement "uVar15 = 0x11ca;" (assignment_expression "uVar15 = 0x11ca" identifier = number_literal) ;) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);" statement_identifier : (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pppppiVar12 = ppppppiVar5[5];" (assignment_expression "pppppiVar12 = ppppppiVar5[5]" identifier = (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[4];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[4]" identifier = (cast_expression "(int ******)ppppppiVar5[4]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ]))) ;) (if_statement "if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" if (parenthesized_expression "((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c])" ( (binary_expression "(int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]" (cast_expression "(int ******)ppppppiVar5[0x26]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[0x26]" identifier [ number_literal ])) == (subscript_expression "pppppppiVar14[0x3c]" identifier [ number_literal ])) )) (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }" { (expression_statement "pppppppiVar14[0xc] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xc] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar5[4];" (assignment_expression "pppppiVar12 = ppppppiVar5[4]" identifier = (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[5];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[5]" identifier = (cast_expression "(int ******)ppppppiVar5[5]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001ccf0;" goto statement_identifier ;)) (expression_statement "pppppppiVar14[0xd] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xd] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xd]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];" statement_identifier : (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" identifier = (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ])) ;)) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[2];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[2]" identifier = (cast_expression "(int ******)ppppppiVar5[2]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "ppppppiVar5[4] = (int *****)0x0;" (assignment_expression "ppppppiVar5[4] = (int *****)0x0" (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[5] = (int *****)0x0;" (assignment_expression "ppppppiVar5[5] = (int *****)0x0" (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cd08;" goto statement_identifier ;)) (labeled_statement "LAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;" statement_identifier : (expression_statement "pppppppiVar14[2] = ppppppiVar10;" (assignment_expression "pppppppiVar14[2] = ppppppiVar10" (subscript_expression "pppppppiVar14[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "pppppiVar12 = ppppppiVar5[2];" (assignment_expression "pppppiVar12 = ppppppiVar5[2]" identifier = (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001ce0c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;" statement_identifier : (expression_statement "pppppiVar12[3] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[3] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[3]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "ppppppiVar5[2] = (int *****)0x0;" (assignment_expression "ppppppiVar5[2] = (int *****)0x0" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[3] = (int *****)0x0;" (assignment_expression "ppppppiVar5[3] = (int *****)0x0" (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar10 = pppppppiVar14[6];" (assignment_expression "ppppppiVar10 = pppppppiVar14[6]" identifier = (subscript_expression "pppppppiVar14[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar5[2] = (int *****)ppppppiVar10;" (assignment_expression "ppppppiVar5[2] = (int *****)ppppppiVar10" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar10" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;" if (parenthesized_expression "(pppppppiVar14[7] != (int ******)0x0)" ( (binary_expression "pppppppiVar14[7] != (int ******)0x0" (subscript_expression "pppppppiVar14[7]" identifier [ number_literal ]) != (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001cd38;" goto statement_identifier ;)) (labeled_statement "LAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;" statement_identifier : (expression_statement "pppppppiVar14[7] = ppppppiVar5;" (assignment_expression "pppppppiVar14[7] = ppppppiVar5" (subscript_expression "pppppppiVar14[7]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" else (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" { (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }" { (expression_statement "pppppppiVar14[0xe] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xe] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xe]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" else (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" { (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[4]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) }))) (expression_statement "pppppiVar12 = ppppppiVar5[4];" (assignment_expression "pppppiVar12 = ppppppiVar5[4]" identifier = (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[5];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[5]" identifier = (cast_expression "(int ******)ppppppiVar5[5]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }" { (labeled_statement "LAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;" statement_identifier : (expression_statement "pppppiVar12[5] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[5] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[5]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (goto_statement "goto LAB_0001ccf4;" goto statement_identifier ;) })) (expression_statement "pppppppiVar14[0xf] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xf] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppiVar5[4] = (int *****)0x0;" (assignment_expression "ppppppiVar5[4] = (int *****)0x0" (subscript_expression "ppppppiVar5[4]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[5] = (int *****)0x0;" (assignment_expression "ppppppiVar5[5] = (int *****)0x0" (subscript_expression "ppppppiVar5[5]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" identifier = (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[2];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[2]" identifier = (cast_expression "(int ******)ppppppiVar5[2]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;" if (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" ( (binary_expression "pppppiVar12 == (int *****)0x0" identifier == (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cdfc;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;" statement_identifier : (expression_statement "pppppiVar12[2] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[2] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[2]" identifier [ number_literal ]) = (cast_expression "(int ****)ppppppiVar10" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (expression_statement "pppppiVar12 = ppppppiVar5[2];" (assignment_expression "pppppiVar12 = ppppppiVar5[2]" identifier = (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[3]" identifier = (cast_expression "(int ******)ppppppiVar5[3]" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]))) ;) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;" if (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" ( (binary_expression "pppppiVar12 != (int *****)0x0" identifier != (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0001cd18;" goto statement_identifier ;)) (labeled_statement "LAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;" statement_identifier : (expression_statement "pppppppiVar14[3] = ppppppiVar10;" (assignment_expression "pppppppiVar14[3] = ppppppiVar10" (subscript_expression "pppppppiVar14[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "ppppppiVar5[2] = (int *****)0x0;" (assignment_expression "ppppppiVar5[2] = (int *****)0x0" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar5[3] = (int *****)0x0;" (assignment_expression "ppppppiVar5[3] = (int *****)0x0" (subscript_expression "ppppppiVar5[3]" identifier [ number_literal ]) = (cast_expression "(int *****)0x0" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppppiVar10 = pppppppiVar14[6];" (assignment_expression "ppppppiVar10 = pppppppiVar14[6]" identifier = (subscript_expression "pppppppiVar14[6]" identifier [ number_literal ])) ;) (expression_statement "ppppppiVar5[2] = (int *****)ppppppiVar10;" (assignment_expression "ppppppiVar5[2] = (int *****)ppppppiVar10" (subscript_expression "ppppppiVar5[2]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar10" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;" if (parenthesized_expression "(pppppppiVar14[7] == (int ******)0x0)" ( (binary_expression "pppppppiVar14[7] == (int ******)0x0" (subscript_expression "pppppppiVar14[7]" identifier [ number_literal ]) == (cast_expression "(int ******)0x0" ( (type_descriptor "int ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_0001ce2c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;" statement_identifier : (expression_statement "ppppppiVar10[3] = (int *****)ppppppiVar5;" (assignment_expression "ppppppiVar10[3] = (int *****)ppppppiVar5" (subscript_expression "ppppppiVar10[3]" identifier [ number_literal ]) = (cast_expression "(int *****)ppppppiVar5" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;)) }))) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x22918)" * (cast_expression "(code **)(pcVar31 + 0x22918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22918)" ( (binary_expression "pcVar31 + 0x22918" identifier + number_literal) ))))) ;) (expression_statement "pppppppiVar14[6] = ppppppiVar5;" (assignment_expression "pppppppiVar14[6] = ppppppiVar5" (subscript_expression "pppppppiVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = (*pcVar32)(pppppppiVar25);" (assignment_expression "iVar20 = (*pcVar32)(pppppppiVar25)" identifier = (call_expression "(*pcVar32)(pppppppiVar25)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(pppppppiVar25)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) ;) (expression_statement "uVar15 = 0x11dd;" (assignment_expression "uVar15 = 0x11dd" identifier = number_literal) ;) }) (else_clause "else {\n    uVar15 = 0x196b;\n  }" else (compound_statement "{\n    uVar15 = 0x196b;\n  }" { (expression_statement "uVar15 = 0x196b;" (assignment_expression "uVar15 = 0x196b" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);" statement_identifier : (expression_statement "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);" (assignment_expression "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" identifier = (cast_expression "(int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" ( (type_descriptor "int *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" ( (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" * (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2264c)" ( (binary_expression "pcVar31 + 0x2264c" identifier + number_literal) ))))))) )) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" ( (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" * (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" * (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x22644)" ( (binary_expression "pcVar31 + 0x22644" identifier + number_literal) ))))) , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar31 + 0x22638)" * (cast_expression "(int *)(pcVar31 + 0x22638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x22638)" ( (binary_expression "pcVar31 + 0x22638" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" statement_identifier : (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" if (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" ( (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" * (cast_expression "(char *)(pppppiVar12 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppiVar12 + 0x14)" ( (binary_expression "pppppiVar12 + 0x14" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" { (labeled_statement "LAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);" statement_identifier : (expression_statement "FUN_00020df0(iVar2,unaff_s7);" (call_expression "FUN_00020df0(iVar2,unaff_s7)" identifier (argument_list "(iVar2,unaff_s7)" ( identifier , identifier ))) ;)) }))) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" * (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" ( (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)pppppppiVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }" { (labeled_statement "LAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);" statement_identifier : (expression_statement "FUN_00014600(ppppppiVar5);" (call_expression "FUN_00014600(ppppppiVar5)" identifier (argument_list "(ppppppiVar5)" ( identifier ))) ;)) })) (goto_statement "goto LAB_0001cb4c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) , LIT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (return_statement return 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 ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 = (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 ;)) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }))) })) (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) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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 IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) })) (while_statement while (parenthesized_expression ( BOOL )) (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 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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | LIT)) ;) })) (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) ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (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) ))))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_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 (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 (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) , LIT , (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) ;) }) (else_clause else (compound_statement { (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 )))) ;) (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) ))))) ;) (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 = (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) ;) (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 = (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) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) })) (return_statement return IDENT ;) })) }))) (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) , LIT , (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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) ))))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_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 ))) ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_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 , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_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 , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (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 ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)))))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_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 ( (subscript_expression IDENT [ LIT ]) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ 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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ 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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) )) != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (subscript_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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) & 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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_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 ( (subscript_expression IDENT [ LIT ]) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) , (binary_expression (subscript_expression IDENT [ LIT ]) < (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (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) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (subscript_expression IDENT [ LIT ])) )) - 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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_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 (call_expression IDENT (argument_list ( IDENT ))) ;)) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 * 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) (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 { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 ')) ))) )) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (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 = (subscript_expression IDENT [ IDENT ])) ;) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) != LIT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) != LIT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) )) != LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (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 * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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 ))) ;) })) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (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 ')) )) (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 ( (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) 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) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (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) ;)) }) while (parenthesized_expression ( (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 ( (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence '))) )) (compound_statement { (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 ( (subscript_expression IDENT [ LIT ]) , 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 * (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 { (expression_statement (assignment_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) ;) })) })) (labeled_statement 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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (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 ( (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 ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (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) ))) ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ])) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;)) }))) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (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 : (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) })) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_0001b6e4(int *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\n}" (primitive_type "int") (function_declarator "FUN_0001b6e4(int *param_1)" (identifier "FUN_0001b6e4") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int *piVar4;\n  int ******ppppppiVar5;\n  undefined4 uVar6;\n  int *******pppppppiVar7;\n  int *******pppppppiVar8;\n  undefined4 *puVar9;\n  int ******ppppppiVar10;\n  int *******pppppppiVar11;\n  int *****pppppiVar12;\n  int iVar13;\n  int *******pppppppiVar14;\n  undefined4 uVar15;\n  int *******pppppppiVar16;\n  int *******pppppppiVar17;\n  int *******pppppppiVar18;\n  int *****pppppiVar19;\n  int iVar20;\n  int ******ppppppiVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int *******pppppppiVar24;\n  int *******pppppppiVar25;\n  int *******pppppppiVar26;\n  int ******ppppppiVar27;\n  int ****ppppiVar28;\n  uint uVar29;\n  int *******unaff_s6;\n  uint uVar30;\n  int *******unaff_s7;\n  code *pcVar31;\n  code *pcVar32;\n  undefined1 auStack_428 [12];\n  int iStack_41c;\n  int *******pppppppiStack_418;\n  int ******ppppppiStack_414;\n  int *******pppppppiStack_410;\n  undefined4 uStack_40c;\n  int *******pppppppiStack_408;\n  int ******ppppppiStack_404;\n  int *******pppppppiStack_400;\n  int *******pppppppiStack_3fc;\n  int *******pppppppiStack_3f8;\n  code *pcStack_3f4;\n  int *******pppppppiStack_3e0;\n  undefined4 uStack_3dc;\n  code *pcStack_3d8;\n  int *piStack_3cc;\n  int *******pppppppiStack_3c8;\n  int *******pppppppiStack_3c4;\n  int iStack_3c0;\n  int ******ppppppiStack_3bc;\n  int *******pppppppiStack_3b8;\n  undefined4 uStack_3b4;\n  int ******ppppppiStack_3b0;\n  undefined4 uStack_3ac;\n  int ******ppppppiStack_3a4;\n  undefined4 uStack_3a0;\n  int ******appppppiStack_39c [32];\n  int ******appppppiStack_31c [32];\n  int ******appppppiStack_29c [32];\n  int ******appppppiStack_21c [32];\n  int ******appppppiStack_19c [32];\n  int ******appppppiStack_11c [32];\n  int ******ppppppiStack_9c;\n  int iStack_98;\n  int iStack_94;\n  int iStack_90;\n  \n  iVar20 = param_1[6];\n  iVar23 = iVar20 + 0xac;\n  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);\n  puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n  if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }\n  if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }\n  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }\n  if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }\n  *(int **)(iVar20 + 0x10) = param_1;\n  *(undefined1 *)((int)param_1 + 0xf5) = 1;\n  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }\n  while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }\n  iVar2 = *(int *)PTR_DAT_0003f068;\n  pcVar31 = *(code **)PTR_DAT_0003f070;\n  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);\n  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }\n  iVar2 = **(int **)(pcVar31 + 0x236b0);\n  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);\n  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );\n  iVar13 = *(int *)(iVar2 + 0x18);\n  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }\n  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);\nLAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);\n  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);\n  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);\n  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);\n  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);\n  pcStack_3d8 = pcVar31 + 0x2b48c;\n  piStack_3cc = *(int **)(pcVar31 + 0x23748);\n  ppppppiVar27 = (int ******)&ppppppiStack_3a4;\n  uVar15 = 0x8000001f;\n  ppppppiVar21 = pppppppiVar11[6];\n  ppppppiStack_9c = (int ******)*piStack_3cc;\n  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);\n  iStack_98 = iVar13;\n  iStack_94 = iVar2;\n  iStack_90 = iVar23;\n  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  pppppppiVar11[0x17] = ppppppiVar5;\n  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);\n  pppppppiVar25 = (int *******)0x0;\nLAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);\n  if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }\n  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;\n  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);\n  unaff_s7 = (int *******)ppppppiVar21[0x3c];\n  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }\n  if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }\n  ppppppiVar5 = pppppppiVar11[0x2e];\n  pppppppiVar25 = (int *******)0x0;\n  if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }\n  pppppppiStack_3b8 = (int *******)0x0;\nLAB_0001bc90:\n  uStack_3b4 = 0;\n  pppppppiVar16 = (int *******)&pppppppiStack_3b8;\n  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;\nLAB_0001be20:\n  unaff_s6 = appppppiStack_31c;\n  pppppppiVar7 = appppppiStack_39c;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);\n  unaff_s7 = appppppiStack_29c;\n  pppppppiVar7 = unaff_s6;\n  do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);\n  do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);\n  iStack_3c0 = -1;\n  if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }\n  pppppppiVar17 = (int *******)0x400;\n  pppppppiStack_3c8 = pppppppiVar16;\n  pppppppiStack_3c4 = appppppiStack_39c;\n  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);\n  if (iVar2 == 0) goto LAB_0001c364;\nLAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;\n  pppppppiVar7 = pppppppiStack_3c4;\n  pppppppiVar16 = pppppppiStack_3c8;\nLAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;\n  pppppppiVar17 = unaff_s7;\n  pppppppiStack_3e0 = pppppppiVar16;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);\n  if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);\n  unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;\n  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();\n  pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);\n  pppppppiVar14 = unaff_s6;\n  pppppppiVar16 = unaff_s7;\n  iVar2 = FUN_0001868c(pppppppiVar11);\n  if (iVar2 == 0) goto LAB_0001bcc4;\n  ppppppiVar10 = pppppppiVar11[0x2d];\n  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;\nLAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }\n  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;\n  unaff_s6 = (int *******)pppppppiVar11[0x38];\n  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }\nLAB_0001c074:\n  FUN_00014600(pppppppiVar11);\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);\n  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;\n  (*pcVar31)(pppppppiVar11);\nLAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }\n  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);\n  pcVar32 = FUN_0001c688;\n  ppppppiVar5 = ppppppiStack_9c;\n  (*pcVar31)();\n  piVar4 = *(int **)(pcVar31 + 0x22c64);\n  iStack_41c = *piVar4;\n  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;\n  pppppppiStack_418 = pppppppiVar18;\n  ppppppiStack_414 = ppppppiVar21;\n  pppppppiStack_410 = pppppppiVar24;\n  uStack_40c = uVar15;\n  pppppppiStack_408 = pppppppiVar26;\n  ppppppiStack_404 = ppppppiVar27;\n  pppppppiStack_400 = unaff_s6;\n  pppppppiStack_3fc = unaff_s7;\n  pppppppiStack_3f8 = pppppppiVar11;\n  pcStack_3f4 = pcVar32;\n  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }\n  pppppiVar12 = ppppppiVar5[0x31];\n  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }\n  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }\n  FUN_0001ab80(ppppppiVar5);\n  if (iStack_41c == *piVar4) {\n    return 1;\n  }\n  pcVar31 = *(code **)(pcVar31 + 0x22c30);\n  iVar2 = iStack_41c;\n  (*pcVar31)();\n  uVar30 = *(uint *)(iVar2 + 0xf8);\n  uVar29 = uVar30 & 4;\n  pppppppiVar25 = (int *******)(uVar30 & 0x8000);\n  uVar3 = uVar30;\n  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }\n  if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }\n  iVar23 = iVar2 + 0xac;\n  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n  uVar15 = 0x191e;\n  if (iVar20 != 0) goto LAB_0001cf0c;\n  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;\n  ppppppiVar5 = *(int *******)(iVar2 + 0x14);\n  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;\n  pppppiVar12 = ppppppiVar5[0x38];\n  uVar30 = uVar30 & 2;\n  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;\n  pppppppiVar14 = (int *******)0x1;\n  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);\nLAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;\n  if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }\n  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\nLAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;\n  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;\nLAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];\n  if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }\nLAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n  pcVar32 = *(code **)(pcVar31 + 0x22918);\n  if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }\nLAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);\n  if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }\nLAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);\nLAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }\n  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n  if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }\n  goto LAB_0001cb4c;\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 ******ppppppiVar5;" (primitive_type "int") (pointer_declarator "******ppppppiVar5" (* "*") (pointer_declarator "*****ppppppiVar5" (* "*") (pointer_declarator "****ppppppiVar5" (* "*") (pointer_declarator "***ppppppiVar5" (* "*") (pointer_declarator "**ppppppiVar5" (* "*") (pointer_declarator "*ppppppiVar5" (* "*") (identifier "ppppppiVar5"))))))) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int *******pppppppiVar7;" (primitive_type "int") (pointer_declarator "*******pppppppiVar7" (* "*") (pointer_declarator "******pppppppiVar7" (* "*") (pointer_declarator "*****pppppppiVar7" (* "*") (pointer_declarator "****pppppppiVar7" (* "*") (pointer_declarator "***pppppppiVar7" (* "*") (pointer_declarator "**pppppppiVar7" (* "*") (pointer_declarator "*pppppppiVar7" (* "*") (identifier "pppppppiVar7")))))))) (; ";")) (declaration "int *******pppppppiVar8;" (primitive_type "int") (pointer_declarator "*******pppppppiVar8" (* "*") (pointer_declarator "******pppppppiVar8" (* "*") (pointer_declarator "*****pppppppiVar8" (* "*") (pointer_declarator "****pppppppiVar8" (* "*") (pointer_declarator "***pppppppiVar8" (* "*") (pointer_declarator "**pppppppiVar8" (* "*") (pointer_declarator "*pppppppiVar8" (* "*") (identifier "pppppppiVar8")))))))) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int ******ppppppiVar10;" (primitive_type "int") (pointer_declarator "******ppppppiVar10" (* "*") (pointer_declarator "*****ppppppiVar10" (* "*") (pointer_declarator "****ppppppiVar10" (* "*") (pointer_declarator "***ppppppiVar10" (* "*") (pointer_declarator "**ppppppiVar10" (* "*") (pointer_declarator "*ppppppiVar10" (* "*") (identifier "ppppppiVar10"))))))) (; ";")) (declaration "int *******pppppppiVar11;" (primitive_type "int") (pointer_declarator "*******pppppppiVar11" (* "*") (pointer_declarator "******pppppppiVar11" (* "*") (pointer_declarator "*****pppppppiVar11" (* "*") (pointer_declarator "****pppppppiVar11" (* "*") (pointer_declarator "***pppppppiVar11" (* "*") (pointer_declarator "**pppppppiVar11" (* "*") (pointer_declarator "*pppppppiVar11" (* "*") (identifier "pppppppiVar11")))))))) (; ";")) (declaration "int *****pppppiVar12;" (primitive_type "int") (pointer_declarator "*****pppppiVar12" (* "*") (pointer_declarator "****pppppiVar12" (* "*") (pointer_declarator "***pppppiVar12" (* "*") (pointer_declarator "**pppppiVar12" (* "*") (pointer_declarator "*pppppiVar12" (* "*") (identifier "pppppiVar12")))))) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *******pppppppiVar14;" (primitive_type "int") (pointer_declarator "*******pppppppiVar14" (* "*") (pointer_declarator "******pppppppiVar14" (* "*") (pointer_declarator "*****pppppppiVar14" (* "*") (pointer_declarator "****pppppppiVar14" (* "*") (pointer_declarator "***pppppppiVar14" (* "*") (pointer_declarator "**pppppppiVar14" (* "*") (pointer_declarator "*pppppppiVar14" (* "*") (identifier "pppppppiVar14")))))))) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "int *******pppppppiVar16;" (primitive_type "int") (pointer_declarator "*******pppppppiVar16" (* "*") (pointer_declarator "******pppppppiVar16" (* "*") (pointer_declarator "*****pppppppiVar16" (* "*") (pointer_declarator "****pppppppiVar16" (* "*") (pointer_declarator "***pppppppiVar16" (* "*") (pointer_declarator "**pppppppiVar16" (* "*") (pointer_declarator "*pppppppiVar16" (* "*") (identifier "pppppppiVar16")))))))) (; ";")) (declaration "int *******pppppppiVar17;" (primitive_type "int") (pointer_declarator "*******pppppppiVar17" (* "*") (pointer_declarator "******pppppppiVar17" (* "*") (pointer_declarator "*****pppppppiVar17" (* "*") (pointer_declarator "****pppppppiVar17" (* "*") (pointer_declarator "***pppppppiVar17" (* "*") (pointer_declarator "**pppppppiVar17" (* "*") (pointer_declarator "*pppppppiVar17" (* "*") (identifier "pppppppiVar17")))))))) (; ";")) (declaration "int *******pppppppiVar18;" (primitive_type "int") (pointer_declarator "*******pppppppiVar18" (* "*") (pointer_declarator "******pppppppiVar18" (* "*") (pointer_declarator "*****pppppppiVar18" (* "*") (pointer_declarator "****pppppppiVar18" (* "*") (pointer_declarator "***pppppppiVar18" (* "*") (pointer_declarator "**pppppppiVar18" (* "*") (pointer_declarator "*pppppppiVar18" (* "*") (identifier "pppppppiVar18")))))))) (; ";")) (declaration "int *****pppppiVar19;" (primitive_type "int") (pointer_declarator "*****pppppiVar19" (* "*") (pointer_declarator "****pppppiVar19" (* "*") (pointer_declarator "***pppppiVar19" (* "*") (pointer_declarator "**pppppiVar19" (* "*") (pointer_declarator "*pppppiVar19" (* "*") (identifier "pppppiVar19")))))) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int ******ppppppiVar21;" (primitive_type "int") (pointer_declarator "******ppppppiVar21" (* "*") (pointer_declarator "*****ppppppiVar21" (* "*") (pointer_declarator "****ppppppiVar21" (* "*") (pointer_declarator "***ppppppiVar21" (* "*") (pointer_declarator "**ppppppiVar21" (* "*") (pointer_declarator "*ppppppiVar21" (* "*") (identifier "ppppppiVar21"))))))) (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int *******pppppppiVar24;" (primitive_type "int") (pointer_declarator "*******pppppppiVar24" (* "*") (pointer_declarator "******pppppppiVar24" (* "*") (pointer_declarator "*****pppppppiVar24" (* "*") (pointer_declarator "****pppppppiVar24" (* "*") (pointer_declarator "***pppppppiVar24" (* "*") (pointer_declarator "**pppppppiVar24" (* "*") (pointer_declarator "*pppppppiVar24" (* "*") (identifier "pppppppiVar24")))))))) (; ";")) (declaration "int *******pppppppiVar25;" (primitive_type "int") (pointer_declarator "*******pppppppiVar25" (* "*") (pointer_declarator "******pppppppiVar25" (* "*") (pointer_declarator "*****pppppppiVar25" (* "*") (pointer_declarator "****pppppppiVar25" (* "*") (pointer_declarator "***pppppppiVar25" (* "*") (pointer_declarator "**pppppppiVar25" (* "*") (pointer_declarator "*pppppppiVar25" (* "*") (identifier "pppppppiVar25")))))))) (; ";")) (declaration "int *******pppppppiVar26;" (primitive_type "int") (pointer_declarator "*******pppppppiVar26" (* "*") (pointer_declarator "******pppppppiVar26" (* "*") (pointer_declarator "*****pppppppiVar26" (* "*") (pointer_declarator "****pppppppiVar26" (* "*") (pointer_declarator "***pppppppiVar26" (* "*") (pointer_declarator "**pppppppiVar26" (* "*") (pointer_declarator "*pppppppiVar26" (* "*") (identifier "pppppppiVar26")))))))) (; ";")) (declaration "int ******ppppppiVar27;" (primitive_type "int") (pointer_declarator "******ppppppiVar27" (* "*") (pointer_declarator "*****ppppppiVar27" (* "*") (pointer_declarator "****ppppppiVar27" (* "*") (pointer_declarator "***ppppppiVar27" (* "*") (pointer_declarator "**ppppppiVar27" (* "*") (pointer_declarator "*ppppppiVar27" (* "*") (identifier "ppppppiVar27"))))))) (; ";")) (declaration "int ****ppppiVar28;" (primitive_type "int") (pointer_declarator "****ppppiVar28" (* "*") (pointer_declarator "***ppppiVar28" (* "*") (pointer_declarator "**ppppiVar28" (* "*") (pointer_declarator "*ppppiVar28" (* "*") (identifier "ppppiVar28"))))) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "int *******unaff_s6;" (primitive_type "int") (pointer_declarator "*******unaff_s6" (* "*") (pointer_declarator "******unaff_s6" (* "*") (pointer_declarator "*****unaff_s6" (* "*") (pointer_declarator "****unaff_s6" (* "*") (pointer_declarator "***unaff_s6" (* "*") (pointer_declarator "**unaff_s6" (* "*") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")))))))) (; ";")) (declaration "uint uVar30;" (type_identifier "uint") (identifier "uVar30") (; ";")) (declaration "int *******unaff_s7;" (primitive_type "int") (pointer_declarator "*******unaff_s7" (* "*") (pointer_declarator "******unaff_s7" (* "*") (pointer_declarator "*****unaff_s7" (* "*") (pointer_declarator "****unaff_s7" (* "*") (pointer_declarator "***unaff_s7" (* "*") (pointer_declarator "**unaff_s7" (* "*") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")))))))) (; ";")) (declaration "code *pcVar31;" (type_identifier "code") (pointer_declarator "*pcVar31" (* "*") (identifier "pcVar31")) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "undefined1 auStack_428 [12];" (type_identifier "undefined1") (array_declarator "auStack_428 [12]" (identifier "auStack_428") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "int iStack_41c;" (primitive_type "int") (identifier "iStack_41c") (; ";")) (declaration "int *******pppppppiStack_418;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_418" (* "*") (pointer_declarator "******pppppppiStack_418" (* "*") (pointer_declarator "*****pppppppiStack_418" (* "*") (pointer_declarator "****pppppppiStack_418" (* "*") (pointer_declarator "***pppppppiStack_418" (* "*") (pointer_declarator "**pppppppiStack_418" (* "*") (pointer_declarator "*pppppppiStack_418" (* "*") (identifier "pppppppiStack_418")))))))) (; ";")) (declaration "int ******ppppppiStack_414;" (primitive_type "int") (pointer_declarator "******ppppppiStack_414" (* "*") (pointer_declarator "*****ppppppiStack_414" (* "*") (pointer_declarator "****ppppppiStack_414" (* "*") (pointer_declarator "***ppppppiStack_414" (* "*") (pointer_declarator "**ppppppiStack_414" (* "*") (pointer_declarator "*ppppppiStack_414" (* "*") (identifier "ppppppiStack_414"))))))) (; ";")) (declaration "int *******pppppppiStack_410;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_410" (* "*") (pointer_declarator "******pppppppiStack_410" (* "*") (pointer_declarator "*****pppppppiStack_410" (* "*") (pointer_declarator "****pppppppiStack_410" (* "*") (pointer_declarator "***pppppppiStack_410" (* "*") (pointer_declarator "**pppppppiStack_410" (* "*") (pointer_declarator "*pppppppiStack_410" (* "*") (identifier "pppppppiStack_410")))))))) (; ";")) (declaration "undefined4 uStack_40c;" (type_identifier "undefined4") (identifier "uStack_40c") (; ";")) (declaration "int *******pppppppiStack_408;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_408" (* "*") (pointer_declarator "******pppppppiStack_408" (* "*") (pointer_declarator "*****pppppppiStack_408" (* "*") (pointer_declarator "****pppppppiStack_408" (* "*") (pointer_declarator "***pppppppiStack_408" (* "*") (pointer_declarator "**pppppppiStack_408" (* "*") (pointer_declarator "*pppppppiStack_408" (* "*") (identifier "pppppppiStack_408")))))))) (; ";")) (declaration "int ******ppppppiStack_404;" (primitive_type "int") (pointer_declarator "******ppppppiStack_404" (* "*") (pointer_declarator "*****ppppppiStack_404" (* "*") (pointer_declarator "****ppppppiStack_404" (* "*") (pointer_declarator "***ppppppiStack_404" (* "*") (pointer_declarator "**ppppppiStack_404" (* "*") (pointer_declarator "*ppppppiStack_404" (* "*") (identifier "ppppppiStack_404"))))))) (; ";")) (declaration "int *******pppppppiStack_400;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_400" (* "*") (pointer_declarator "******pppppppiStack_400" (* "*") (pointer_declarator "*****pppppppiStack_400" (* "*") (pointer_declarator "****pppppppiStack_400" (* "*") (pointer_declarator "***pppppppiStack_400" (* "*") (pointer_declarator "**pppppppiStack_400" (* "*") (pointer_declarator "*pppppppiStack_400" (* "*") (identifier "pppppppiStack_400")))))))) (; ";")) (declaration "int *******pppppppiStack_3fc;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3fc" (* "*") (pointer_declarator "******pppppppiStack_3fc" (* "*") (pointer_declarator "*****pppppppiStack_3fc" (* "*") (pointer_declarator "****pppppppiStack_3fc" (* "*") (pointer_declarator "***pppppppiStack_3fc" (* "*") (pointer_declarator "**pppppppiStack_3fc" (* "*") (pointer_declarator "*pppppppiStack_3fc" (* "*") (identifier "pppppppiStack_3fc")))))))) (; ";")) (declaration "int *******pppppppiStack_3f8;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3f8" (* "*") (pointer_declarator "******pppppppiStack_3f8" (* "*") (pointer_declarator "*****pppppppiStack_3f8" (* "*") (pointer_declarator "****pppppppiStack_3f8" (* "*") (pointer_declarator "***pppppppiStack_3f8" (* "*") (pointer_declarator "**pppppppiStack_3f8" (* "*") (pointer_declarator "*pppppppiStack_3f8" (* "*") (identifier "pppppppiStack_3f8")))))))) (; ";")) (declaration "code *pcStack_3f4;" (type_identifier "code") (pointer_declarator "*pcStack_3f4" (* "*") (identifier "pcStack_3f4")) (; ";")) (declaration "int *******pppppppiStack_3e0;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3e0" (* "*") (pointer_declarator "******pppppppiStack_3e0" (* "*") (pointer_declarator "*****pppppppiStack_3e0" (* "*") (pointer_declarator "****pppppppiStack_3e0" (* "*") (pointer_declarator "***pppppppiStack_3e0" (* "*") (pointer_declarator "**pppppppiStack_3e0" (* "*") (pointer_declarator "*pppppppiStack_3e0" (* "*") (identifier "pppppppiStack_3e0")))))))) (; ";")) (declaration "undefined4 uStack_3dc;" (type_identifier "undefined4") (identifier "uStack_3dc") (; ";")) (declaration "code *pcStack_3d8;" (type_identifier "code") (pointer_declarator "*pcStack_3d8" (* "*") (identifier "pcStack_3d8")) (; ";")) (declaration "int *piStack_3cc;" (primitive_type "int") (pointer_declarator "*piStack_3cc" (* "*") (identifier "piStack_3cc")) (; ";")) (declaration "int *******pppppppiStack_3c8;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3c8" (* "*") (pointer_declarator "******pppppppiStack_3c8" (* "*") (pointer_declarator "*****pppppppiStack_3c8" (* "*") (pointer_declarator "****pppppppiStack_3c8" (* "*") (pointer_declarator "***pppppppiStack_3c8" (* "*") (pointer_declarator "**pppppppiStack_3c8" (* "*") (pointer_declarator "*pppppppiStack_3c8" (* "*") (identifier "pppppppiStack_3c8")))))))) (; ";")) (declaration "int *******pppppppiStack_3c4;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3c4" (* "*") (pointer_declarator "******pppppppiStack_3c4" (* "*") (pointer_declarator "*****pppppppiStack_3c4" (* "*") (pointer_declarator "****pppppppiStack_3c4" (* "*") (pointer_declarator "***pppppppiStack_3c4" (* "*") (pointer_declarator "**pppppppiStack_3c4" (* "*") (pointer_declarator "*pppppppiStack_3c4" (* "*") (identifier "pppppppiStack_3c4")))))))) (; ";")) (declaration "int iStack_3c0;" (primitive_type "int") (identifier "iStack_3c0") (; ";")) (declaration "int ******ppppppiStack_3bc;" (primitive_type "int") (pointer_declarator "******ppppppiStack_3bc" (* "*") (pointer_declarator "*****ppppppiStack_3bc" (* "*") (pointer_declarator "****ppppppiStack_3bc" (* "*") (pointer_declarator "***ppppppiStack_3bc" (* "*") (pointer_declarator "**ppppppiStack_3bc" (* "*") (pointer_declarator "*ppppppiStack_3bc" (* "*") (identifier "ppppppiStack_3bc"))))))) (; ";")) (declaration "int *******pppppppiStack_3b8;" (primitive_type "int") (pointer_declarator "*******pppppppiStack_3b8" (* "*") (pointer_declarator "******pppppppiStack_3b8" (* "*") (pointer_declarator "*****pppppppiStack_3b8" (* "*") (pointer_declarator "****pppppppiStack_3b8" (* "*") (pointer_declarator "***pppppppiStack_3b8" (* "*") (pointer_declarator "**pppppppiStack_3b8" (* "*") (pointer_declarator "*pppppppiStack_3b8" (* "*") (identifier "pppppppiStack_3b8")))))))) (; ";")) (declaration "undefined4 uStack_3b4;" (type_identifier "undefined4") (identifier "uStack_3b4") (; ";")) (declaration "int ******ppppppiStack_3b0;" (primitive_type "int") (pointer_declarator "******ppppppiStack_3b0" (* "*") (pointer_declarator "*****ppppppiStack_3b0" (* "*") (pointer_declarator "****ppppppiStack_3b0" (* "*") (pointer_declarator "***ppppppiStack_3b0" (* "*") (pointer_declarator "**ppppppiStack_3b0" (* "*") (pointer_declarator "*ppppppiStack_3b0" (* "*") (identifier "ppppppiStack_3b0"))))))) (; ";")) (declaration "undefined4 uStack_3ac;" (type_identifier "undefined4") (identifier "uStack_3ac") (; ";")) (declaration "int ******ppppppiStack_3a4;" (primitive_type "int") (pointer_declarator "******ppppppiStack_3a4" (* "*") (pointer_declarator "*****ppppppiStack_3a4" (* "*") (pointer_declarator "****ppppppiStack_3a4" (* "*") (pointer_declarator "***ppppppiStack_3a4" (* "*") (pointer_declarator "**ppppppiStack_3a4" (* "*") (pointer_declarator "*ppppppiStack_3a4" (* "*") (identifier "ppppppiStack_3a4"))))))) (; ";")) (declaration "undefined4 uStack_3a0;" (type_identifier "undefined4") (identifier "uStack_3a0") (; ";")) (declaration "int ******appppppiStack_39c [32];" (primitive_type "int") (pointer_declarator "******appppppiStack_39c [32]" (* "*") (pointer_declarator "*****appppppiStack_39c [32]" (* "*") (pointer_declarator "****appppppiStack_39c [32]" (* "*") (pointer_declarator "***appppppiStack_39c [32]" (* "*") (pointer_declarator "**appppppiStack_39c [32]" (* "*") (pointer_declarator "*appppppiStack_39c [32]" (* "*") (array_declarator "appppppiStack_39c [32]" (identifier "appppppiStack_39c") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******appppppiStack_31c [32];" (primitive_type "int") (pointer_declarator "******appppppiStack_31c [32]" (* "*") (pointer_declarator "*****appppppiStack_31c [32]" (* "*") (pointer_declarator "****appppppiStack_31c [32]" (* "*") (pointer_declarator "***appppppiStack_31c [32]" (* "*") (pointer_declarator "**appppppiStack_31c [32]" (* "*") (pointer_declarator "*appppppiStack_31c [32]" (* "*") (array_declarator "appppppiStack_31c [32]" (identifier "appppppiStack_31c") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******appppppiStack_29c [32];" (primitive_type "int") (pointer_declarator "******appppppiStack_29c [32]" (* "*") (pointer_declarator "*****appppppiStack_29c [32]" (* "*") (pointer_declarator "****appppppiStack_29c [32]" (* "*") (pointer_declarator "***appppppiStack_29c [32]" (* "*") (pointer_declarator "**appppppiStack_29c [32]" (* "*") (pointer_declarator "*appppppiStack_29c [32]" (* "*") (array_declarator "appppppiStack_29c [32]" (identifier "appppppiStack_29c") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******appppppiStack_21c [32];" (primitive_type "int") (pointer_declarator "******appppppiStack_21c [32]" (* "*") (pointer_declarator "*****appppppiStack_21c [32]" (* "*") (pointer_declarator "****appppppiStack_21c [32]" (* "*") (pointer_declarator "***appppppiStack_21c [32]" (* "*") (pointer_declarator "**appppppiStack_21c [32]" (* "*") (pointer_declarator "*appppppiStack_21c [32]" (* "*") (array_declarator "appppppiStack_21c [32]" (identifier "appppppiStack_21c") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******appppppiStack_19c [32];" (primitive_type "int") (pointer_declarator "******appppppiStack_19c [32]" (* "*") (pointer_declarator "*****appppppiStack_19c [32]" (* "*") (pointer_declarator "****appppppiStack_19c [32]" (* "*") (pointer_declarator "***appppppiStack_19c [32]" (* "*") (pointer_declarator "**appppppiStack_19c [32]" (* "*") (pointer_declarator "*appppppiStack_19c [32]" (* "*") (array_declarator "appppppiStack_19c [32]" (identifier "appppppiStack_19c") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******appppppiStack_11c [32];" (primitive_type "int") (pointer_declarator "******appppppiStack_11c [32]" (* "*") (pointer_declarator "*****appppppiStack_11c [32]" (* "*") (pointer_declarator "****appppppiStack_11c [32]" (* "*") (pointer_declarator "***appppppiStack_11c [32]" (* "*") (pointer_declarator "**appppppiStack_11c [32]" (* "*") (pointer_declarator "*appppppiStack_11c [32]" (* "*") (array_declarator "appppppiStack_11c [32]" (identifier "appppppiStack_11c") ([ "[") (number_literal "32") (] "]")))))))) (; ";")) (declaration "int ******ppppppiStack_9c;" (primitive_type "int") (pointer_declarator "******ppppppiStack_9c" (* "*") (pointer_declarator "*****ppppppiStack_9c" (* "*") (pointer_declarator "****ppppppiStack_9c" (* "*") (pointer_declarator "***ppppppiStack_9c" (* "*") (pointer_declarator "**ppppppiStack_9c" (* "*") (pointer_declarator "*ppppppiStack_9c" (* "*") (identifier "ppppppiStack_9c"))))))) (; ";")) (declaration "int iStack_98;" (primitive_type "int") (identifier "iStack_98") (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (expression_statement "iVar20 = param_1[6];" (assignment_expression "iVar20 = param_1[6]" (identifier "iVar20") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar23 = iVar20 + 0xac;" (assignment_expression "iVar23 = iVar20 + 0xac" (identifier "iVar23") (= "=") (binary_expression "iVar20 + 0xac" (identifier "iVar20") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" (* "*") (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_lock_0003f2a8"))) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" (identifier "puVar1") (= "=") (identifier "PTR_pthread_mutex_unlock_0003f33c")) (; ";")) (if_statement "if (iVar2 != 0) {\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);\n    goto LAB_0001b988;\n  }" ({ "{") (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003f070" (* "*") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,\n               PTR_DAT_0003f05c + -0x51e0)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0xa83") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x51e0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51e0")) () ")"))) (; ";")) (goto_statement "goto LAB_0001b988;" (goto "goto") (statement_identifier "LAB_0001b988") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_1 + 0x3f) != '\0') {\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x3f) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x3f) != '\0'" (pointer_expression "*(char *)(param_1 + 0x3f)" (* "*") (cast_expression "(char *)(param_1 + 0x3f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3f)" (( "(") (binary_expression "param_1 + 0x3f" (identifier "param_1") (+ "+") (number_literal "0x3f")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *(undefined1 *)(param_1 + 0x3f) = 0;\n    iVar2 = (*(code *)puVar1)(iVar23);\n    uVar15 = 0xa8a;\n    if (iVar2 != 0) goto LAB_0001b8ac;\n    return 0;\n  }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0x3f) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x3f) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x3f)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x3f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3f)" (( "(") (binary_expression "param_1 + 0x3f" (identifier "param_1") (+ "+") (number_literal "0x3f")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = (*(code *)puVar1)(iVar23);" (assignment_expression "iVar2 = (*(code *)puVar1)(iVar23)" (identifier "iVar2") (= "=") (call_expression "(*(code *)puVar1)(iVar23)" (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 "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (expression_statement "uVar15 = 0xa8a;" (assignment_expression "uVar15 = 0xa8a" (identifier "uVar15") (= "=") (number_literal "0xa8a")) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0001b8ac;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b8ac;" (goto "goto") (statement_identifier "LAB_0001b8ac") (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar20 + 0xf8) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar20 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar20 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(iVar20 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar20 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar20 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xf8)" (( "(") (binary_expression "iVar20 + 0xf8" (identifier "iVar20") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = param_1[5];\n    iVar13 = param_1[4];\n    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" (identifier "iVar2") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[4];" (assignment_expression "iVar13 = param_1[4]" (identifier "iVar13") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }\n    else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" (if "if") (parenthesized_expression "(param_1[0x26] == *(int *)(iVar20 + 0xf0))" (( "(") (binary_expression "param_1[0x26] == *(int *)(iVar20 + 0xf0)" (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) (== "==") (pointer_expression "*(int *)(iVar20 + 0xf0)" (* "*") (cast_expression "(int *)(iVar20 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xf0)" (( "(") (binary_expression "iVar20 + 0xf0" (identifier "iVar20") (+ "+") (number_literal "0xf0")) () ")"))))) () ")")) (compound_statement "{\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 != 0) goto LAB_0001b770;\n      *(int *)(iVar20 + 0x34) = iVar13;\n      param_1[4] = 0;\n      param_1[5] = 0;\n    }" ({ "{") (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0x30) = iVar13;\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x30) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x30) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x30)" (* "*") (cast_expression "(int *)(iVar20 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x30)" (( "(") (binary_expression "iVar20 + 0x30" (identifier "iVar20") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}")) (else_clause "else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" (else "else") (compound_statement "{\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x10) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar13" (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")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}")))) (expression_statement "iVar2 = param_1[4];" (assignment_expression "iVar2 = param_1[4]" (identifier "iVar2") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[5];" (assignment_expression "iVar13 = param_1[5]" (identifier "iVar13") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0001b770;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b770;" (goto "goto") (statement_identifier "LAB_0001b770") (; ";"))) (expression_statement "*(int *)(iVar20 + 0x34) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x34) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x34)" (* "*") (cast_expression "(int *)(iVar20 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x34)" (( "(") (binary_expression "iVar20 + 0x34" (identifier "iVar20") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" (else "else") (compound_statement "{\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }\n      iVar2 = param_1[4];\n      iVar13 = param_1[5];\n      if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n    }" ({ "{") (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }\n      else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0x38) = iVar13;\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x38) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x38) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x38)" (* "*") (cast_expression "(int *)(iVar20 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x38)" (( "(") (binary_expression "iVar20 + 0x38" (identifier "iVar20") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}")) (else_clause "else {\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" (else "else") (compound_statement "{\n        *(int *)(iVar2 + 0x10) = iVar13;\n      }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x10) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x10) = iVar13" (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")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}")))) (expression_statement "iVar2 = param_1[4];" (assignment_expression "iVar2 = param_1[4]" (identifier "iVar2") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[5];" (assignment_expression "iVar13 = param_1[5]" (identifier "iVar13") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (iVar2 == 0) {\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }\n      else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0x3c) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x3c) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0x3c) = iVar13" (pointer_expression "*(int *)(iVar20 + 0x3c)" (* "*") (cast_expression "(int *)(iVar20 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x3c)" (( "(") (binary_expression "iVar20 + 0x3c" (identifier "iVar20") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" (else "else") (compound_statement "{\nLAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;\n        param_1[4] = 0;\n        param_1[5] = 0;\n      }" ({ "{") (labeled_statement "LAB_0001b770:\n        *(int *)(iVar2 + 0x14) = iVar13;" (statement_identifier "LAB_0001b770") (: ":") (expression_statement "*(int *)(iVar2 + 0x14) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0x14) = iVar13" (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")) () ")")))) (= "=") (identifier "iVar13")) (; ";"))) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (if_statement "if (param_1[3] == 0) {\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }\n  else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" (if "if") (parenthesized_expression "(param_1[3] == 0)" (( "(") (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(iVar20 + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 == 0) goto LAB_0001b86c;\nLAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;\nLAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;\n  }" ({ "{") (expression_statement "*(int *)(iVar20 + 8) = param_1[2];" (assignment_expression "*(int *)(iVar20 + 8) = param_1[2]" (pointer_expression "*(int *)(iVar20 + 8)" (* "*") (cast_expression "(int *)(iVar20 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" (identifier "iVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" (identifier "iVar13") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0001b86c;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b86c;" (goto "goto") (statement_identifier "LAB_0001b86c") (; ";"))) (labeled_statement "LAB_0001b798:\n    *(int *)(iVar2 + 0xc) = iVar13;" (statement_identifier "LAB_0001b798") (: ":") (expression_statement "*(int *)(iVar2 + 0xc) = iVar13;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar13" (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 "iVar13")) (; ";"))) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar20 + 0x10)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar20 + 0x10)" (* "*") (cast_expression "(int *)(iVar20 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "param_1[2] = iVar2;" (assignment_expression "param_1[2] = iVar2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(iVar20 + 0x14) != 0" (pointer_expression "*(int *)(iVar20 + 0x14)" (* "*") (cast_expression "(int *)(iVar20 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b7b8;" (goto "goto") (statement_identifier "LAB_0001b7b8") (; ";"))) (labeled_statement "LAB_0001b88c:\n    *(int **)(iVar20 + 0x14) = param_1;" (statement_identifier "LAB_0001b88c") (: ":") (expression_statement "*(int **)(iVar20 + 0x14) = param_1;" (assignment_expression "*(int **)(iVar20 + 0x14) = param_1" (pointer_expression "*(int **)(iVar20 + 0x14)" (* "*") (cast_expression "(int **)(iVar20 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_1")) (; ";"))) (} "}")) (else_clause "else {\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" (else "else") (compound_statement "{\n    *(int *)(param_1[3] + 8) = param_1[2];\n    iVar2 = param_1[2];\n    iVar13 = param_1[3];\n    if (iVar2 != 0) goto LAB_0001b798;\nLAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;\n    param_1[2] = 0;\n    param_1[3] = 0;\n    iVar2 = *(int *)(iVar20 + 0x10);\n    param_1[2] = iVar2;\n    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;\nLAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;\n  }" ({ "{") (expression_statement "*(int *)(param_1[3] + 8) = param_1[2];" (assignment_expression "*(int *)(param_1[3] + 8) = param_1[2]" (pointer_expression "*(int *)(param_1[3] + 8)" (* "*") (cast_expression "(int *)(param_1[3] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[3] + 8)" (( "(") (binary_expression "param_1[3] + 8" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar2 = param_1[2];" (assignment_expression "iVar2 = param_1[2]" (identifier "iVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" (identifier "iVar13") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0001b798;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b798;" (goto "goto") (statement_identifier "LAB_0001b798") (; ";"))) (labeled_statement "LAB_0001b86c:\n    *(int *)(iVar20 + 0xc) = iVar13;" (statement_identifier "LAB_0001b86c") (: ":") (expression_statement "*(int *)(iVar20 + 0xc) = iVar13;" (assignment_expression "*(int *)(iVar20 + 0xc) = iVar13" (pointer_expression "*(int *)(iVar20 + 0xc)" (* "*") (cast_expression "(int *)(iVar20 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xc)" (( "(") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar13")) (; ";"))) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar20 + 0x10)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar20 + 0x10)" (* "*") (cast_expression "(int *)(iVar20 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "param_1[2] = iVar2;" (assignment_expression "param_1[2] = iVar2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0x14) == 0)" (( "(") (binary_expression "*(int *)(iVar20 + 0x14) == 0" (pointer_expression "*(int *)(iVar20 + 0x14)" (* "*") (cast_expression "(int *)(iVar20 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b88c;" (goto "goto") (statement_identifier "LAB_0001b88c") (; ";"))) (labeled_statement "LAB_0001b7b8:\n    *(int **)(iVar2 + 0xc) = param_1;" (statement_identifier "LAB_0001b7b8") (: ":") (expression_statement "*(int **)(iVar2 + 0xc) = param_1;" (assignment_expression "*(int **)(iVar2 + 0xc) = param_1" (pointer_expression "*(int **)(iVar2 + 0xc)" (* "*") (cast_expression "(int **)(iVar2 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";"))) (} "}")))) (expression_statement "*(int **)(iVar20 + 0x10) = param_1;" (assignment_expression "*(int **)(iVar20 + 0x10) = param_1" (pointer_expression "*(int **)(iVar20 + 0x10)" (* "*") (cast_expression "(int **)(iVar20 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0xf5) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0xf5) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0xf5)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0xf5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0xf5)" (( "(") (binary_expression "(int)param_1 + 0xf5" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xf5")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar20 + 0xf8) & 0x200) != 0)" (( "(") (binary_expression "(*(uint *)(iVar20 + 0xf8) & 0x200) != 0" (parenthesized_expression "(*(uint *)(iVar20 + 0xf8) & 0x200)" (( "(") (binary_expression "*(uint *)(iVar20 + 0xf8) & 0x200" (pointer_expression "*(uint *)(iVar20 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar20 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xf8)" (( "(") (binary_expression "iVar20 + 0xf8" (identifier "iVar20") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = param_1[0x2c];\n    if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }\n    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;\n    param_1[0x2c] = uVar3 | 0x10;\n  }" ({ "{") (expression_statement "uVar3 = param_1[0x2c];" (assignment_expression "uVar3 = param_1[0x2c]" (identifier "uVar3") (= "=") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (if_statement "if ((uVar3 & 4) != 0) {\n      if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[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 *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }\n      if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }\n      *param_1 = 0;\n      param_1[1] = 0;\n      uVar3 = param_1[0x2c] & 0xfffffffb;\n      param_1[0x2c] = uVar3;\n    }" ({ "{") (if_statement "if ((int *)param_1[1] == (int *)0x0) {\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }\n      else {\n        *(int *)param_1[1] = *param_1;\n      }" (if "if") (parenthesized_expression "((int *)param_1[1] == (int *)0x0)" (( "(") (binary_expression "(int *)param_1[1] == (int *)0x0" (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0x20) = *param_1;\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x20) = *param_1;" (assignment_expression "*(int *)(iVar20 + 0x20) = *param_1" (pointer_expression "*(int *)(iVar20 + 0x20)" (* "*") (cast_expression "(int *)(iVar20 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x20)" (( "(") (binary_expression "iVar20 + 0x20" (identifier "iVar20") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}")) (else_clause "else {\n        *(int *)param_1[1] = *param_1;\n      }" (else "else") (compound_statement "{\n        *(int *)param_1[1] = *param_1;\n      }" ({ "{") (expression_statement "*(int *)param_1[1] = *param_1;" (assignment_expression "*(int *)param_1[1] = *param_1" (pointer_expression "*(int *)param_1[1]" (* "*") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}")))) (if_statement "if (*param_1 == 0) {\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }\n      else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar20 + 0x24) = param_1[1];\n      }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x24) = param_1[1];" (assignment_expression "*(int *)(iVar20 + 0x24) = param_1[1]" (pointer_expression "*(int *)(iVar20 + 0x24)" (* "*") (cast_expression "(int *)(iVar20 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x24)" (( "(") (binary_expression "iVar20 + 0x24" (identifier "iVar20") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" (else "else") (compound_statement "{\n        *(int *)(*param_1 + 4) = param_1[1];\n      }" ({ "{") (expression_statement "*(int *)(*param_1 + 4) = param_1[1];" (assignment_expression "*(int *)(*param_1 + 4) = param_1[1]" (pointer_expression "*(int *)(*param_1 + 4)" (* "*") (cast_expression "(int *)(*param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4)" (( "(") (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = param_1[0x2c] & 0xfffffffb;" (assignment_expression "uVar3 = param_1[0x2c] & 0xfffffffb" (identifier "uVar3") (= "=") (binary_expression "param_1[0x2c] & 0xfffffffb" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (& "&") (number_literal "0xfffffffb"))) (; ";")) (expression_statement "param_1[0x2c] = uVar3;" (assignment_expression "param_1[0x2c] = uVar3" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (if_statement "if ((uVar3 & 8) != 0) goto LAB_0001b8d0;" (if "if") (parenthesized_expression "((uVar3 & 8) != 0)" (( "(") (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_0001b8d0;" (goto "goto") (statement_identifier "LAB_0001b8d0") (; ";"))) (expression_statement "param_1[0x2c] = uVar3 | 0x10;" (assignment_expression "param_1[0x2c] = uVar3 | 0x10" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "uVar3 | 0x10" (identifier "uVar3") (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (while_statement "while( true ) {\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);\n    if (iVar2 == 0) {\n      return 0;\n    }\nLAB_0001b988:\n    uVar15 = 0xab8;\nLAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);\n    if (iVar2 != 0) break;\n    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);" (assignment_expression "iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" (* "*") (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_unlock_0003f33c"))) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_0001b988:\n    uVar15 = 0xab8;" (statement_identifier "LAB_0001b988") (: ":") (expression_statement "uVar15 = 0xab8;" (assignment_expression "uVar15 = 0xab8" (identifier "uVar15") (= "=") (number_literal "0xab8")) (; ";"))) (labeled_statement "LAB_0001b8ac:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);" (statement_identifier "LAB_0001b8ac") (: ":") (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003f070" (* "*") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,\n               PTR_DAT_0003f05c + -0x51b8)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar15") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x51b8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51b8")) () ")"))) (; ";"))) (labeled_statement "LAB_0001b8d0:\n    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);" (statement_identifier "LAB_0001b8d0") (: ":") (expression_statement "iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);" (assignment_expression "iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" (( "(") (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" (* "*") (cast_expression "(code *)PTR_epoll_ctl_0003f278" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_epoll_ctl_0003f278"))) () ")")) (argument_list "(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 0xcc)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xcc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xcc)" (( "(") (binary_expression "iVar20 + 0xcc" (identifier "iVar20") (+ "+") (number_literal "0xcc")) () ")")))) (, ",") (number_literal "2") (, ",") (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (iVar2 != 0) break;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;" (assignment_expression "param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "param_1[0x2c] & 0xfffffff7U | 0x10" (binary_expression "param_1[0x2c] & 0xfffffff7U" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (& "&") (number_literal "0xfffffff7U")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)PTR_DAT_0003f068;" (assignment_expression "iVar2 = *(int *)PTR_DAT_0003f068" (identifier "iVar2") (= "=") (pointer_expression "*(int *)PTR_DAT_0003f068" (* "*") (cast_expression "(int *)PTR_DAT_0003f068" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068")))) (; ";")) (expression_statement "pcVar31 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar31 = *(code **)PTR_DAT_0003f070" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) (; ";")) (expression_statement "(*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);" (call_expression "(*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40)" (( "(") (identifier "iVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0xab1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x4f40" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x4f40")) () ")"))) (; ";")) (if_statement "if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8)" (* "*") (cast_expression "(uint *)(*(int *)(iVar2 + 0x18) + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 0x18) + 0xf8)" (( "(") (binary_expression "*(int *)(iVar2 + 0x18) + 0xf8" (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }\n    iVar2 = FUN_0001b6e4();\n    return iVar2;\n  }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0xe0) != 0) {\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0xe0) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0xe0) != 0" (pointer_expression "*(int *)(iVar2 + 0xe0)" (* "*") (cast_expression "(int *)(iVar2 + 0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xe0)" (( "(") (binary_expression "iVar2 + 0xe0" (identifier "iVar2") (+ "+") (number_literal "0xe0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);\n      return iVar2;\n    }" ({ "{") (expression_statement "iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);" (assignment_expression "iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" (identifier "iVar2") (= "=") (call_expression "FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" (identifier "FUN_00020df0") (argument_list "(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554)" (( "(") (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x3554" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" (* "*") (cast_expression "(int *)(pcVar31 + 0x236a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x236a4)" (( "(") (binary_expression "pcVar31 + 0x236a4" (identifier "pcVar31") (+ "+") (number_literal "0x236a4")) () ")")))) (+ "+") (number_literal "-0x3554")) () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "iVar2 = FUN_0001b6e4();" (assignment_expression "iVar2 = FUN_0001b6e4()" (identifier "iVar2") (= "=") (call_expression "FUN_0001b6e4()" (identifier "FUN_0001b6e4") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "iVar2 = **(int **)(pcVar31 + 0x236b0);" (assignment_expression "iVar2 = **(int **)(pcVar31 + 0x236b0)" (identifier "iVar2") (= "=") (pointer_expression "**(int **)(pcVar31 + 0x236b0)" (* "*") (pointer_expression "*(int **)(pcVar31 + 0x236b0)" (* "*") (cast_expression "(int **)(pcVar31 + 0x236b0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x236b0)" (( "(") (binary_expression "pcVar31 + 0x236b0" (identifier "pcVar31") (+ "+") (number_literal "0x236b0")) () ")")))))) (; ";")) (expression_statement "pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);" (assignment_expression "pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8)" (identifier "pcVar32") (= "=") (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x236b8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar31 + 0x236b8)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x236b8)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x236b8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x236b8)" (( "(") (binary_expression "pcVar31 + 0x236b8" (identifier "pcVar31") (+ "+") (number_literal "0x236b8")) () ")"))))))) (; ";")) (expression_statement "(*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            );" (call_expression "(*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            )" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c\n            )" (( "(") (identifier "iVar2") (, ",") (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" (* "*") (cast_expression "(int *)(pcVar31 + 0x236a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x236a4)" (( "(") (binary_expression "pcVar31 + 0x236a4" (identifier "pcVar31") (+ "+") (number_literal "0x236a4")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0xae2") (, ",") (binary_expression "*(int *)(pcVar31 + 0x236a4) + -0x359c" (pointer_expression "*(int *)(pcVar31 + 0x236a4)" (* "*") (cast_expression "(int *)(pcVar31 + 0x236a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x236a4)" (( "(") (binary_expression "pcVar31 + 0x236a4" (identifier "pcVar31") (+ "+") (number_literal "0x236a4")) () ")")))) (+ "+") (number_literal "-0x359c")) () ")"))) (; ";")) (expression_statement "iVar13 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar2 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }\n  else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0)" (( "(") (binary_expression "(*(uint *)(iVar13 + 0xf8) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar13 + 0xf8) & 0x2000)" (( "(") (binary_expression "*(uint *)(iVar13 + 0xf8) & 0x2000" (pointer_expression "*(uint *)(iVar13 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar13 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xf8)" (( "(") (binary_expression "iVar13 + 0xf8" (identifier "iVar13") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);\n    iVar2 = iVar20;\n  }" ({ "{") (expression_statement "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514);" (call_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar32 + 0x23638)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" (* "*") (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" (* "*") (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23638)" (( "(") (binary_expression "pcVar32 + 0x23638" (identifier "pcVar32") (+ "+") (number_literal "0x23638")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,\n               *(int *)(pcVar32 + 0x23624) + -0x3514)" (( "(") (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" (* "*") (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" (* "*") (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23630)" (( "(") (binary_expression "pcVar32 + 0x23630" (identifier "pcVar32") (+ "+") (number_literal "0x23630")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0xaff") (, ",") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x3514" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x3514")) () ")"))) (; ";")) (expression_statement "iVar2 = iVar20;" (assignment_expression "iVar2 = iVar20" (identifier "iVar2") (= "=") (identifier "iVar20")) (; ";")) (} "}")) (else_clause "else {\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" (else "else") (compound_statement "{\n    iVar23 = iVar13 + 0xac;\n    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);\n    if (iVar20 != 0) goto LAB_0001bb7c;\n    pcVar31 = *(code **)(pcVar32 + 0x23904);\n    *(undefined1 *)(iVar2 + 0xfc) = 1;\n    *(undefined1 *)(iVar13 + 0xe3) = 1;\n    iVar20 = (*pcVar31)(iVar23);\n    if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }\n  }" ({ "{") (expression_statement "iVar23 = iVar13 + 0xac;" (assignment_expression "iVar23 = iVar13 + 0xac" (identifier "iVar23") (= "=") (binary_expression "iVar13 + 0xac" (identifier "iVar13") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar32 + 0x23870))(iVar23)" (parenthesized_expression "(**(code **)(pcVar32 + 0x23870))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x23870)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x23870)" (* "*") (cast_expression "(code **)(pcVar32 + 0x23870)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23870)" (( "(") (binary_expression "pcVar32 + 0x23870" (identifier "pcVar32") (+ "+") (number_literal "0x23870")) () ")"))))) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) goto LAB_0001bb7c;" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bb7c;" (goto "goto") (statement_identifier "LAB_0001bb7c") (; ";"))) (expression_statement "pcVar31 = *(code **)(pcVar32 + 0x23904);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x23904)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x23904)" (* "*") (cast_expression "(code **)(pcVar32 + 0x23904)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23904)" (( "(") (binary_expression "pcVar32 + 0x23904" (identifier "pcVar32") (+ "+") (number_literal "0x23904")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar2 + 0xfc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xfc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xfc)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xfc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xfc)" (( "(") (binary_expression "iVar2 + 0xfc" (identifier "iVar2") (+ "+") (number_literal "0xfc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(iVar13 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar13 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar13 + 0xe3)" (* "*") (cast_expression "(undefined1 *)(iVar13 + 0xe3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xe3)" (( "(") (binary_expression "iVar13 + 0xe3" (identifier "iVar13") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar20 = (*pcVar31)(iVar23);" (assignment_expression "iVar20 = (*pcVar31)(iVar23)" (identifier "iVar20") (= "=") (call_expression "(*pcVar31)(iVar23)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (if_statement "if (iVar20 == 0) {\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = -1;\n      if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }\n      return iVar2;\n    }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (if_statement "if ((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)) {\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1))" (( "(") (binary_expression "(*(int *)(iVar13 + 0xdc) != -1) &&\n         (iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)" (parenthesized_expression "(*(int *)(iVar13 + 0xdc) != -1)" (( "(") (binary_expression "*(int *)(iVar13 + 0xdc) != -1" (pointer_expression "*(int *)(iVar13 + 0xdc)" (* "*") (cast_expression "(int *)(iVar13 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xdc)" (( "(") (binary_expression "iVar13 + 0xdc" (identifier "iVar13") (+ "+") (number_literal "0xdc")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1)" (( "(") (comma_expression "iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),\n         iVar2 < 1" (assignment_expression "iVar2 = (**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar32 + 0x237e8))\n                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" (parenthesized_expression "(**(code **)(pcVar32 + 0x237e8))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x237e8)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x237e8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x237e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x237e8)" (( "(") (binary_expression "pcVar32 + 0x237e8" (identifier "pcVar32") (+ "+") (number_literal "0x237e8")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8)" (( "(") (pointer_expression "*(int *)(iVar13 + 0xdc)" (* "*") (cast_expression "(int *)(iVar13 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xdc)" (( "(") (binary_expression "iVar13 + 0xdc" (identifier "iVar13") (+ "+") (number_literal "0xdc")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x28d8" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x28d8")) (, ",") (number_literal "8") () ")")))) (, ",") (binary_expression "iVar2 < 1" (identifier "iVar2") (< "<") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();\n        iVar2 = *piVar4;\n        if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }\n      }" ({ "{") (expression_statement "piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcVar32 + 0x237cc))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar32 + 0x237cc))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x237cc))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x237cc)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x237cc)" (* "*") (cast_expression "(code **)(pcVar32 + 0x237cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x237cc)" (( "(") (binary_expression "pcVar32 + 0x237cc" (identifier "pcVar32") (+ "+") (number_literal "0x237cc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar2 = *piVar4;" (assignment_expression "iVar2 = *piVar4" (identifier "iVar2") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (if_statement "if (iVar2 != 0xb) {\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0xb)" (( "(") (binary_expression "iVar2 != 0xb" (identifier "iVar2") (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\n          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);\n          return iVar2;\n        }" ({ "{") (expression_statement "iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);" (assignment_expression "iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" (identifier "iVar2") (= "=") (call_expression "FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" (identifier "FUN_00020df0") (argument_list "(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc)" (( "(") (identifier "iVar13") (, ",") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x34cc" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x34cc")) () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8);" (call_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))\n            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar32 + 0x23638))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar32 + 0x23638)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" (* "*") (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" (* "*") (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23638)" (( "(") (binary_expression "pcVar32 + 0x23638" (identifier "pcVar32") (+ "+") (number_literal "0x23638")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,\n             *(int *)(pcVar32 + 0x23624) + -0x51b8)" (( "(") (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" (* "*") (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" (* "*") (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23630)" (( "(") (binary_expression "pcVar32 + 0x23630" (identifier "pcVar32") (+ "+") (number_literal "0x23630")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0xb06") (, ",") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x51b8" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x51b8")) () ")"))) (; ";")) (labeled_statement "LAB_0001bb7c:\n  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);" (statement_identifier "LAB_0001bb7c") (: ":") (expression_statement "pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);" (assignment_expression "pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630)" (identifier "pppppppiVar11") (= "=") (cast_expression "(int *******)**(undefined4 **)(pcVar32 + 0x23630)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "**(undefined4 **)(pcVar32 + 0x23630)" (* "*") (pointer_expression "*(undefined4 **)(pcVar32 + 0x23630)" (* "*") (cast_expression "(undefined4 **)(pcVar32 + 0x23630)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23630)" (( "(") (binary_expression "pcVar32 + 0x23630" (identifier "pcVar32") (+ "+") (number_literal "0x23630")) () ")"))))))) (; ";"))) (expression_statement "pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);" (assignment_expression "pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0)" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar32 + 0x23624) + -0x51e0)" (( "(") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x51e0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x51e0")) () ")")))) (; ";")) (expression_statement "pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);" (assignment_expression "pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638)" (identifier "pcVar31") (= "=") (cast_expression "(code *)**(undefined4 **)(pcVar32 + 0x23638)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar32 + 0x23638)" (* "*") (pointer_expression "*(undefined4 **)(pcVar32 + 0x23638)" (* "*") (cast_expression "(undefined4 **)(pcVar32 + 0x23638)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x23638)" (( "(") (binary_expression "pcVar32 + 0x23638" (identifier "pcVar32") (+ "+") (number_literal "0x23638")) () ")"))))))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar32 + 0x23624) + -0x40a0)" (( "(") (binary_expression "*(int *)(pcVar32 + 0x23624) + -0x40a0" (pointer_expression "*(int *)(pcVar32 + 0x23624)" (* "*") (cast_expression "(int *)(pcVar32 + 0x23624)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x23624)" (( "(") (binary_expression "pcVar32 + 0x23624" (identifier "pcVar32") (+ "+") (number_literal "0x23624")) () ")")))) (+ "+") (number_literal "-0x40a0")) () ")")))) (; ";")) (expression_statement "(*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);" (call_expression "(*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(pppppppiVar11,pppppppiVar14,0xb01)" (( "(") (identifier "pppppppiVar11") (, ",") (identifier "pppppppiVar14") (, ",") (number_literal "0xb01") () ")"))) (; ";")) (expression_statement "pcStack_3d8 = pcVar31 + 0x2b48c;" (assignment_expression "pcStack_3d8 = pcVar31 + 0x2b48c" (identifier "pcStack_3d8") (= "=") (binary_expression "pcVar31 + 0x2b48c" (identifier "pcVar31") (+ "+") (number_literal "0x2b48c"))) (; ";")) (expression_statement "piStack_3cc = *(int **)(pcVar31 + 0x23748);" (assignment_expression "piStack_3cc = *(int **)(pcVar31 + 0x23748)" (identifier "piStack_3cc") (= "=") (pointer_expression "*(int **)(pcVar31 + 0x23748)" (* "*") (cast_expression "(int **)(pcVar31 + 0x23748)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x23748)" (( "(") (binary_expression "pcVar31 + 0x23748" (identifier "pcVar31") (+ "+") (number_literal "0x23748")) () ")"))))) (; ";")) (expression_statement "ppppppiVar27 = (int ******)&ppppppiStack_3a4;" (assignment_expression "ppppppiVar27 = (int ******)&ppppppiStack_3a4" (identifier "ppppppiVar27") (= "=") (cast_expression "(int ******)&ppppppiStack_3a4" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&ppppppiStack_3a4" (& "&") (identifier "ppppppiStack_3a4")))) (; ";")) (expression_statement "uVar15 = 0x8000001f;" (assignment_expression "uVar15 = 0x8000001f" (identifier "uVar15") (= "=") (number_literal "0x8000001f")) (; ";")) (expression_statement "ppppppiVar21 = pppppppiVar11[6];" (assignment_expression "ppppppiVar21 = pppppppiVar11[6]" (identifier "ppppppiVar21") (= "=") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppppiStack_9c = (int ******)*piStack_3cc;" (assignment_expression "ppppppiStack_9c = (int ******)*piStack_3cc" (identifier "ppppppiStack_9c") (= "=") (cast_expression "(int ******)*piStack_3cc" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*piStack_3cc" (* "*") (identifier "piStack_3cc")))) (; ";")) (expression_statement "pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);" (assignment_expression "pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40)" (identifier "pppppppiVar24") (= "=") (cast_expression "(int *******)((uint)ppppppiVar21[0x3e] & 0x40)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)ppppppiVar21[0x3e] & 0x40)" (( "(") (binary_expression "(uint)ppppppiVar21[0x3e] & 0x40" (cast_expression "(uint)ppppppiVar21[0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar21[0x3e]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "0x40")) () ")")))) (; ";")) (expression_statement "iStack_98 = iVar13;" (assignment_expression "iStack_98 = iVar13" (identifier "iStack_98") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "iStack_94 = iVar2;" (assignment_expression "iStack_94 = iVar2" (identifier "iStack_94") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iStack_90 = iVar23;" (assignment_expression "iStack_90 = iVar23" (identifier "iStack_90") (= "=") (identifier "iVar23")) (; ";")) (expression_statement "ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();" (assignment_expression "ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))()" (identifier "ppppppiVar5") (= "=") (cast_expression "(int ******)(**(code **)(pcVar31 + 0x23740))()" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(pcVar31 + 0x23740))()" (parenthesized_expression "(**(code **)(pcVar31 + 0x23740))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x23740)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x23740)" (* "*") (cast_expression "(code **)(pcVar31 + 0x23740)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x23740)" (( "(") (binary_expression "pcVar31 + 0x23740" (identifier "pcVar31") (+ "+") (number_literal "0x23740")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (expression_statement "pppppppiVar11[0x17] = ppppppiVar5;" (assignment_expression "pppppppiVar11[0x17] = ppppppiVar5" (subscript_expression "pppppppiVar11[0x17]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "ppppppiVar5")) (; ";")) (expression_statement "pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);" (assignment_expression "pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" (identifier "pppppppiVar26") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fac) + -0x7974" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fac)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fac)" (( "(") (binary_expression "pcStack_3d8 + -0x7fac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fac")) () ")")))) (+ "+") (number_literal "-0x7974")) () ")")))) (; ";")) (expression_statement "pppppppiVar25 = (int *******)0x0;" (assignment_expression "pppppppiVar25 = (int *******)0x0" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0001bc2c:\n  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);" (statement_identifier "LAB_0001bc2c") (: ":") (expression_statement "pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);" (assignment_expression "pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38)" (identifier "pppppppiVar18") (= "=") (binary_expression "(int *******)(uint)*(byte *)(ppppppiVar21 + 0x38)" (cast_expression "(int *******)(uint)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(ppppppiVar21 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar21 + 0x38)" (( "(") (binary_expression "ppppppiVar21 + 0x38" (identifier "ppppppiVar21") (+ "+") (number_literal "0x38")) () ")"))))) (; ";"))) (if_statement "if (pppppppiVar18 != (int *******)0x0) {\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" (if "if") (parenthesized_expression "(pppppppiVar18 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar18 != (int *******)0x0" (identifier "pppppppiVar18") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\njoined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }\nLAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);\nLAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }\n    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }\n    pppppppiVar16 = (int *******)0x8;\n    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }\n    goto LAB_0001bd0c;\n  }" ({ "{") (labeled_statement "joined_r0x0001bdcc:\n    if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" (statement_identifier "joined_r0x0001bdcc") (: ":") (if_statement "if (ppppppiVar10 != (int ******)0x13) {\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" (if "if") (parenthesized_expression "(ppppppiVar10 != (int ******)0x13)" (( "(") (binary_expression "ppppppiVar10 != (int ******)0x13" (identifier "ppppppiVar10") (!= "!=") (cast_expression "(int ******)0x13" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x13"))) () ")")) (compound_statement "{\n      pppppppiVar14 = (int *******)0x3;\n      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }\n      FUN_00014148(pppppppiVar11);\n    }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)0x3;" (assignment_expression "pppppppiVar14 = (int *******)0x3" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x3" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x3"))) (; ";")) (if_statement "if (*(char *)(ppppppiVar21 + 0x38) == '\0') {\n        pppppppiVar14 = (int *******)0x1;\n      }" (if "if") (parenthesized_expression "(*(char *)(ppppppiVar21 + 0x38) == '\0')" (( "(") (binary_expression "*(char *)(ppppppiVar21 + 0x38) == '\0'" (pointer_expression "*(char *)(ppppppiVar21 + 0x38)" (* "*") (cast_expression "(char *)(ppppppiVar21 + 0x38)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar21 + 0x38)" (( "(") (binary_expression "ppppppiVar21 + 0x38" (identifier "ppppppiVar21") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pppppppiVar14 = (int *******)0x1;\n      }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}"))) (expression_statement "FUN_00014148(pppppppiVar11);" (call_expression "FUN_00014148(pppppppiVar11)" (identifier "FUN_00014148") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0001bdfc:\n    FUN_00015e38(pppppppiVar11);" (statement_identifier "LAB_0001bdfc") (: ":") (expression_statement "FUN_00015e38(pppppppiVar11);" (call_expression "FUN_00015e38(pppppppiVar11)" (identifier "FUN_00015e38") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";"))) (labeled_statement "LAB_0001bcc4:\n    if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" (statement_identifier "LAB_0001bcc4") (: ":") (if_statement "if (pppppppiVar11[9] != (int ******)0x0) {\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" (if "if") (parenthesized_expression "(pppppppiVar11[9] != (int ******)0x0)" (( "(") (binary_expression "pppppppiVar11[9] != (int ******)0x0" (subscript_expression "pppppppiVar11[9]" (identifier "pppppppiVar11") ([ "[") (number_literal "9") (] "]")) (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_3d8 + -0x7d58))();\n      pppppppiVar11[9] = (int ******)0x0;\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_3d8 + -0x7d58))();" (call_expression "(**(code **)(pcStack_3d8 + -0x7d58))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d58))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d58)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d58)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d58)" (( "(") (binary_expression "pcStack_3d8 + -0x7d58" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d58")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppppiVar11[9] = (int ******)0x0;" (assignment_expression "pppppppiVar11[9] = (int ******)0x0" (subscript_expression "pppppppiVar11[9]" (identifier "pppppppiVar11") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (if_statement "if (pppppppiVar11[0x29] != (int ******)0xffffffff) {\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }" (if "if") (parenthesized_expression "(pppppppiVar11[0x29] != (int ******)0xffffffff)" (( "(") (binary_expression "pppppppiVar11[0x29] != (int ******)0xffffffff" (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (!= "!=") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n      pppppppiVar14 = (int *******)0x1;\n      (**(code **)(pcStack_3d8 + -0x7ec8))();\n    }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "(**(code **)(pcStack_3d8 + -0x7ec8))();" (call_expression "(**(code **)(pcStack_3d8 + -0x7ec8))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ec8))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7ec8)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7ec8)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7ec8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7ec8)" (( "(") (binary_expression "pcStack_3d8 + -0x7ec8" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7ec8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pppppppiVar16 = (int *******)0x8;" (assignment_expression "pppppppiVar16 = (int *******)0x8" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)0x8" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x8"))) (; ";")) (if_statement "if (ppppppiVar21[0x37] != (int *****)0xffffffff) {\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }" (if "if") (parenthesized_expression "(ppppppiVar21[0x37] != (int *****)0xffffffff)" (( "(") (binary_expression "ppppppiVar21[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar21[0x37]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x37") (] "]")) (!= "!=") (cast_expression "(int *****)0xffffffff" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();\n      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }\n    }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x28d8")) () ")")))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7e10))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e10))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e10)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e10)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e10)" (( "(") (binary_expression "pcStack_3d8 + -0x7e10" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }" (if "if") (parenthesized_expression "((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb))" (( "(") (binary_expression "(iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)" (parenthesized_expression "(iVar2 < 1)" (( "(") (binary_expression "iVar2 < 1" (identifier "iVar2") (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)" (( "(") (comma_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "0xb"))) () ")"))) () ")")) (compound_statement "{\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);\n        FUN_00020df0(ppppppiVar21);\n      }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x341c")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(ppppppiVar21);" (call_expression "FUN_00020df0(ppppppiVar21)" (identifier "FUN_00020df0") (argument_list "(ppppppiVar21)" (( "(") (identifier "ppppppiVar21") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0001bd0c;" (goto "goto") (statement_identifier "LAB_0001bd0c") (; ";")) (} "}"))) (if_statement "if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;" (if "if") (parenthesized_expression "(ppppppiVar10 == (int ******)0x13)" (( "(") (binary_expression "ppppppiVar10 == (int ******)0x13" (identifier "ppppppiVar10") (== "==") (cast_expression "(int ******)0x13" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x13"))) () ")")) (goto_statement "goto LAB_0001bdfc;" (goto "goto") (statement_identifier "LAB_0001bdfc") (; ";"))) (expression_statement "unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);" (assignment_expression "unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5)" (identifier "unaff_s6") (= "=") (binary_expression "(int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5)" (cast_expression "(int *******)(uint)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)((int)pppppppiVar11 + 0xf5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppiVar11 + 0xf5)" (( "(") (binary_expression "(int)pppppppiVar11 + 0xf5" (cast_expression "(int)pppppppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiVar11")) (+ "+") (number_literal "0xf5")) () ")"))))) (; ";")) (expression_statement "unaff_s7 = (int *******)ppppppiVar21[0x3c];" (assignment_expression "unaff_s7 = (int *******)ppppppiVar21[0x3c]" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)ppppppiVar21[0x3c]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "ppppppiVar21[0x3c]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x3c") (] "]")))) (; ";")) (if_statement "if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" (if "if") (parenthesized_expression "((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0))" (( "(") (binary_expression "(unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)" (parenthesized_expression "(unaff_s6 != (int *******)0x0)" (( "(") (binary_expression "unaff_s6 != (int *******)0x0" (identifier "unaff_s6") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar11[0x38] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar11[0x38] == (int ******)0x0" (subscript_expression "pppppppiVar11[0x38]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x38") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    ppppppiVar5 = (int ******)ppppppiVar21[0x37];\n    pppppppiVar25 = unaff_s6;\n    if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    uStack_3a0 = 0x10000;\n    ppppppiStack_3a4 = ppppppiVar5;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    goto LAB_0001bc2c;\n  }" ({ "{") (expression_statement "ppppppiVar5 = (int ******)ppppppiVar21[0x37];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar21[0x37]" (identifier "ppppppiVar5") (= "=") (cast_expression "(int ******)ppppppiVar21[0x37]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar21[0x37]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x37") (] "]")))) (; ";")) (expression_statement "pppppppiVar25 = unaff_s6;" (assignment_expression "pppppppiVar25 = unaff_s6" (identifier "pppppppiVar25") (= "=") (identifier "unaff_s6")) (; ";")) (if_statement "if (pppppppiVar24 == (int *******)0x0) {\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" (if "if") (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar24 == (int *******)0x0" (identifier "pppppppiVar24") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiVar14 = pppppppiStack_3c8;\n      do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);\n      pppppppiVar17 = (int *******)0x400;\n      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);\n      if (iVar2 == 0) goto LAB_0001c364;\n      pppppppiVar17 = (int *******)0x0;\n      pppppppiStack_3e0 = (int *******)0x0;\n      pppppppiVar14 = pppppppiStack_3c8;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);\n      if (-1 < iVar2) goto LAB_0001c380;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar16 = (int *******)*puVar9;\n      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar16;\n      pppppppiVar24 = pppppppiVar25;\nLAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      goto joined_r0x0001bdcc;\n    }" ({ "{") (expression_statement "pppppppiStack_3c8 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c8 = appppppiStack_39c" (identifier "pppppppiStack_3c8") (= "=") (identifier "appppppiStack_39c")) (; ";")) (expression_statement "pppppppiVar14 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar14 = pppppppiStack_3c8" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiStack_3c8")) (; ";")) (do_statement "do {\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      } while (pppppppiVar14 != appppppiStack_31c);" (do "do") (compound_statement "{\n        *pppppppiVar14 = (int ******)0x0;\n        pppppppiVar14 = pppppppiVar14 + 1;\n      }" ({ "{") (expression_statement "*pppppppiVar14 = (int ******)0x0;" (assignment_expression "*pppppppiVar14 = (int ******)0x0" (pointer_expression "*pppppppiVar14" (* "*") (identifier "pppppppiVar14")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar14 + 1;" (assignment_expression "pppppppiVar14 = pppppppiVar14 + 1" (identifier "pppppppiVar14") (= "=") (binary_expression "pppppppiVar14 + 1" (identifier "pppppppiVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar14 != appppppiStack_31c)" (( "(") (binary_expression "pppppppiVar14 != appppppiStack_31c" (identifier "pppppppiVar14") (!= "!=") (identifier "appppppiStack_31c")) () ")")) (; ";")) (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)0x400" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);" (assignment_expression "iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0)" (identifier "iVar2") (= "=") (call_expression "FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0)" (identifier "FUN_00022130") (argument_list "(ppppppiVar5,pppppppiStack_3c8,0)" (( "(") (identifier "ppppppiVar5") (, ",") (identifier "pppppppiStack_3c8") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0001c364;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c364;" (goto "goto") (statement_identifier "LAB_0001c364") (; ";"))) (expression_statement "pppppppiVar17 = (int *******)0x0;" (assignment_expression "pppppppiVar17 = (int *******)0x0" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiStack_3e0 = (int *******)0x0;" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" (identifier "pppppppiStack_3e0") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar14 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar14 = pppppppiStack_3c8" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiStack_3c8")) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" (( "(") (binary_expression "pcStack_3d8 + -0x7d6c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0)" (( "(") (binary_expression "(int)ppppppiVar21[0x37] + 1" (cast_expression "(int)ppppppiVar21[0x37]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppiVar21[0x37]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x37") (] "]"))) (+ "+") (number_literal "1")) (, ",") (identifier "pppppppiStack_3c8") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < iVar2) goto LAB_0001c380;" (if "if") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (goto_statement "goto LAB_0001c380;" (goto "goto") (statement_identifier "LAB_0001c380") (; ";"))) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar16 = (int *******)*puVar9;" (assignment_expression "pppppppiVar16 = (int *******)*puVar9" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)*puVar9" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (if_statement "if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;" (if "if") (parenthesized_expression "(pppppppiVar16 == (int *******)0x4)" (( "(") (binary_expression "pppppppiVar16 == (int *******)0x4" (identifier "pppppppiVar16") (== "==") (cast_expression "(int *******)0x4" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) () ")")) (goto_statement "goto LAB_0001c13c;" (goto "goto") (statement_identifier "LAB_0001c13c") (; ";"))) (expression_statement "pppppppiVar25 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar25 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)pppppppiVar11[6]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" (( "(") (binary_expression "pcStack_3d8 + -0x7ddc" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "(pppppppiVar16)" (( "(") (identifier "pppppppiVar16") () ")"))))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar16;" (assignment_expression "pppppppiVar18 = pppppppiVar16" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar16")) (; ";")) (expression_statement "pppppppiVar24 = pppppppiVar25;" (assignment_expression "pppppppiVar24 = pppppppiVar25" (identifier "pppppppiVar24") (= "=") (identifier "pppppppiVar25")) (; ";")) (labeled_statement "LAB_0001c18c:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (statement_identifier "LAB_0001c18c") (: ":") (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3470")) () ")")))) (; ";"))) (expression_statement "FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);" (call_expression "FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16)" (identifier "FUN_00020df0") (argument_list "(pppppppiVar25,pppppppiVar14,pppppppiVar16)" (( "(") (identifier "pppppppiVar25") (, ",") (identifier "pppppppiVar14") (, ",") (identifier "pppppppiVar16") () ")"))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0001bdcc;" (goto "goto") (statement_identifier "joined_r0x0001bdcc") (; ";")) (} "}"))) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "uStack_3a0 = 0x10000;" (assignment_expression "uStack_3a0 = 0x10000" (identifier "uStack_3a0") (= "=") (number_literal "0x10000")) (; ";")) (expression_statement "ppppppiStack_3a4 = ppppppiVar5;" (assignment_expression "ppppppiStack_3a4 = ppppppiVar5" (identifier "ppppppiStack_3a4") (= "=") (identifier "ppppppiVar5")) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7dac)" (( "(") (binary_expression "pcStack_3d8 + -0x7dac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(ppppppiVar27,1,0xffffffff)" (( "(") (identifier "ppppppiVar27") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }\nLAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" ({ "{") (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar4 != 4) {\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" (if "if") (parenthesized_expression "(*piVar4 != 4)" (( "(") (binary_expression "*piVar4 != 4" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];\n        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();\n        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);\n        ppppppiVar10 = pppppppiVar11[0x2d];\n        goto joined_r0x0001bdcc;\n      }" ({ "{") (labeled_statement "LAB_0001bd98:\n        pppppppiVar18 = (int *******)pppppppiVar11[6];" (statement_identifier "LAB_0001bd98") (: ":") (expression_statement "pppppppiVar18 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)pppppppiVar11[6]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (expression_statement "uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();" (assignment_expression "uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))()" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" (( "(") (binary_expression "pcStack_3d8 + -0x7ddc" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3450")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);" (call_expression "FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6)" (identifier "FUN_00020df0") (argument_list "(pppppppiVar18,pppppppiVar14,uVar6)" (( "(") (identifier "pppppppiVar18") (, ",") (identifier "pppppppiVar14") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0001bdcc;" (goto "goto") (statement_identifier "joined_r0x0001bdcc") (; ";")) (} "}"))) (labeled_statement "LAB_0001c13c:\n      ppppppiVar10 = pppppppiVar11[0x2d];" (statement_identifier "LAB_0001c13c") (: ":") (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" (else "else") (compound_statement "{\nLAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;\n      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" ({ "{") (labeled_statement "LAB_0001c380:\n      pppppppiVar14 = &ppppppiStack_3b0;" (statement_identifier "LAB_0001c380") (: ":") (expression_statement "pppppppiVar14 = &ppppppiStack_3b0;" (assignment_expression "pppppppiVar14 = &ppppppiStack_3b0" (identifier "pppppppiVar14") (= "=") (pointer_expression "&ppppppiStack_3b0" (& "&") (identifier "ppppppiStack_3b0"))) (; ";"))) (expression_statement "(**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);" (call_expression "(**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d18))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d18)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d18)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d18)" (( "(") (binary_expression "pcStack_3d8 + -0x7d18" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d18")) () ")"))))) () ")")) (argument_list "(ppppppiVar21[0x37],pppppppiVar14,8)" (( "(") (subscript_expression "ppppppiVar21[0x37]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x37") (] "]")) (, ",") (identifier "pppppppiVar14") (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0001bc2c;" (goto "goto") (statement_identifier "LAB_0001bc2c") (; ";")) (} "}"))) (if_statement "if (pppppppiVar25 != (int *******)0x0) {\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" (if "if") (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar25 != (int *******)0x0" (identifier "pppppppiVar25") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_0001478c(pppppppiVar11);\n    FUN_00015e38(pppppppiVar11);\n  }" ({ "{") (expression_statement "FUN_0001478c(pppppppiVar11);" (call_expression "FUN_0001478c(pppppppiVar11)" (identifier "FUN_0001478c") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";")) (expression_statement "FUN_00015e38(pppppppiVar11);" (call_expression "FUN_00015e38(pppppppiVar11)" (identifier "FUN_00015e38") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "ppppppiVar5 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar5 = pppppppiVar11[0x2e]" (identifier "ppppppiVar5") (= "=") (subscript_expression "pppppppiVar11[0x2e]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2e") (] "]"))) (; ";")) (expression_statement "pppppppiVar25 = (int *******)0x0;" (assignment_expression "pppppppiVar25 = (int *******)0x0" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" (if "if") (parenthesized_expression "((ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0))))" (( "(") (binary_expression "(ppppppiVar5 != (int ******)0x2) &&\n     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))" (parenthesized_expression "(ppppppiVar5 != (int ******)0x2)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x2" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x2" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x2"))) () ")")) (&& "&&") (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))" (( "(") (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0))" (( "(") (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)" (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" (* "*") (cast_expression "(char *)(pppppppiVar11 + 0x3d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar11 + 0x3d)" (( "(") (binary_expression "pppppppiVar11 + 0x3d" (identifier "pppppppiVar11") (+ "+") (number_literal "0x3d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x0" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }\n    pppppppiVar16 = (int *******)0x0;\n    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;\nLAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];\n    uStack_3a0 = 0;\n    if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;\n    if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }\n    pppppppiVar14 = (int *******)0x1;\n    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);\n    if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }\n    goto LAB_0001bc2c;\n  }" ({ "{") (if_statement "if (0 < (int)unaff_s7) {\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" (if "if") (parenthesized_expression "(0 < (int)unaff_s7)" (( "(") (binary_expression "0 < (int)unaff_s7" (number_literal "0") (< "<") (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7"))) () ")")) (compound_statement "{\n      iVar2 = FUN_0002186c();\n      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }\n      ppppppiVar5 = pppppppiVar11[0x2e];\n      pppppppiStack_3b8 = unaff_s7;\n      goto LAB_0001bc90;\n    }" ({ "{") (expression_statement "iVar2 = FUN_0002186c();" (assignment_expression "iVar2 = FUN_0002186c()" (identifier "iVar2") (= "=") (call_expression "FUN_0002186c()" (identifier "FUN_0002186c") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {\n        unaff_s7 = (int *******)0x0;\n      }\n      else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" (if "if") (parenthesized_expression "((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25])" (( "(") (binary_expression "(int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (< "<") (binary_expression "iVar2 - (int)pppppppiVar11[0x25]" (identifier "iVar2") (- "-") (cast_expression "(int)pppppppiVar11[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar11[0x25]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x25") (] "]"))))) () ")")) (compound_statement "{\n        unaff_s7 = (int *******)0x0;\n      }" ({ "{") (expression_statement "unaff_s7 = (int *******)0x0;" (assignment_expression "unaff_s7 = (int *******)0x0" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" (else "else") (compound_statement "{\n        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));\n      }" ({ "{") (expression_statement "unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));" (assignment_expression "unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]))" (( "(") (binary_expression "(int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25])" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (- "-") (parenthesized_expression "(iVar2 - (int)pppppppiVar11[0x25])" (( "(") (binary_expression "iVar2 - (int)pppppppiVar11[0x25]" (identifier "iVar2") (- "-") (cast_expression "(int)pppppppiVar11[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar11[0x25]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x25") (] "]")))) () ")"))) () ")")))) (; ";")) (} "}")))) (expression_statement "ppppppiVar5 = pppppppiVar11[0x2e];" (assignment_expression "ppppppiVar5 = pppppppiVar11[0x2e]" (identifier "ppppppiVar5") (= "=") (subscript_expression "pppppppiVar11[0x2e]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2e") (] "]"))) (; ";")) (expression_statement "pppppppiStack_3b8 = unaff_s7;" (assignment_expression "pppppppiStack_3b8 = unaff_s7" (identifier "pppppppiStack_3b8") (= "=") (identifier "unaff_s7")) (; ";")) (goto_statement "goto LAB_0001bc90;" (goto "goto") (statement_identifier "LAB_0001bc90") (; ";")) (} "}"))) (expression_statement "pppppppiVar16 = (int *******)0x0;" (assignment_expression "pppppppiVar16 = (int *******)0x0" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;" (if "if") (parenthesized_expression "(pppppppiVar24 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar24 == (int *******)0x0" (identifier "pppppppiVar24") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001be20;" (goto "goto") (statement_identifier "LAB_0001be20") (; ";"))) (labeled_statement "LAB_0001bc98:\n    ppppppiStack_3a4 = pppppppiVar11[0x29];" (statement_identifier "LAB_0001bc98") (: ":") (expression_statement "ppppppiStack_3a4 = pppppppiVar11[0x29];" (assignment_expression "ppppppiStack_3a4 = pppppppiVar11[0x29]" (identifier "ppppppiStack_3a4") (= "=") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]"))) (; ";"))) (expression_statement "uStack_3a0 = 0;" (assignment_expression "uStack_3a0 = 0" (identifier "uStack_3a0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (ppppppiVar5 == (int ******)0x1) {\n      uStack_3a0 = 0x60000;\n    }\n    else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x1)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x1" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x1" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n      uStack_3a0 = 0x60000;\n    }" ({ "{") (expression_statement "uStack_3a0 = 0x60000;" (assignment_expression "uStack_3a0 = 0x60000" (identifier "uStack_3a0") (= "=") (number_literal "0x60000")) (; ";")) (} "}")) (else_clause "else if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (else "else") (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n      uStack_3a0 = 0x30000;\n    }\n    else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x0" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uStack_3a0 = 0x30000;\n    }" ({ "{") (expression_statement "uStack_3a0 = 0x30000;" (assignment_expression "uStack_3a0 = 0x30000" (identifier "uStack_3a0") (= "=") (number_literal "0x30000")) (; ";")) (} "}")) (else_clause "else if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (else "else") (if_statement "if (ppppppiVar5 == (int ******)0x2) {\n      uStack_3a0 = 0x20000;\n    }\n    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x2)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x2" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x2" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      uStack_3a0 = 0x20000;\n    }" ({ "{") (expression_statement "uStack_3a0 = 0x20000;" (assignment_expression "uStack_3a0 = 0x20000" (identifier "uStack_3a0") (= "=") (number_literal "0x20000")) (; ";")) (} "}")) (else_clause "else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (else "else") (if_statement "if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x3)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x3" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x3" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x3"))) () ")")) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";"))))))))) (if_statement "if (pppppppiVar16 == (int *******)0x0) {\n      iVar2 = -1;\n    }\n    else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" (if "if") (parenthesized_expression "(pppppppiVar16 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar16 == (int *******)0x0" (identifier "pppppppiVar16") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = -1;\n    }" ({ "{") (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" (identifier "iVar2") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" (else "else") (compound_statement "{\n      iVar2 = (int)pppppppiStack_3b8 * 1000;\n    }" ({ "{") (expression_statement "iVar2 = (int)pppppppiStack_3b8 * 1000;" (assignment_expression "iVar2 = (int)pppppppiStack_3b8 * 1000" (identifier "iVar2") (= "=") (binary_expression "(int)pppppppiStack_3b8 * 1000" (cast_expression "(int)pppppppiStack_3b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppiStack_3b8")) (* "*") (number_literal "1000"))) (; ";")) (} "}")))) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7dac)" (( "(") (binary_expression "pcStack_3d8 + -0x7dac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(ppppppiVar27,1,iVar2)" (( "(") (identifier "ppppppiVar27") (, ",") (number_literal "1") (, ",") (identifier "iVar2") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }\n    else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      if (*piVar4 != 4) goto LAB_0001bd98;\nLAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];\n    }" ({ "{") (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar4 != 4) goto LAB_0001bd98;" (if "if") (parenthesized_expression "(*piVar4 != 4)" (( "(") (binary_expression "*piVar4 != 4" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0001bd98;" (goto "goto") (statement_identifier "LAB_0001bd98") (; ";"))) (labeled_statement "LAB_0001c1b0:\n      ppppppiVar10 = pppppppiVar11[0x2d];" (statement_identifier "LAB_0001c1b0") (: ":") (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" (else "else") (compound_statement "{\n      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);\n      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);\n      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);\n      iVar2 = FUN_0001868c(pppppppiVar11);\n      if (iVar2 == 0) goto LAB_0001bcc4;\n      ppppppiVar10 = pppppppiVar11[0x2d];\n      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;\n    }" ({ "{") (expression_statement "pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);" (assignment_expression "pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f)" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)((uStack_3a0 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uStack_3a0 << 0x1d) >> 0x1f)" (( "(") (binary_expression "(uStack_3a0 << 0x1d) >> 0x1f" (parenthesized_expression "(uStack_3a0 << 0x1d)" (( "(") (binary_expression "uStack_3a0 << 0x1d" (identifier "uStack_3a0") (<< "<<") (number_literal "0x1d")) () ")")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);" (assignment_expression "pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0)" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)(uint)((uStack_3a0 & 0xba) != 0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((uStack_3a0 & 0xba) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uStack_3a0 & 0xba) != 0)" (( "(") (binary_expression "(uStack_3a0 & 0xba) != 0" (parenthesized_expression "(uStack_3a0 & 0xba)" (( "(") (binary_expression "uStack_3a0 & 0xba" (identifier "uStack_3a0") (& "&") (number_literal "0xba")) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);" (assignment_expression "pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)((int)uStack_3a0._2_2_ & 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)uStack_3a0._2_2_ & 1)" (( "(") (binary_expression "(int)uStack_3a0._2_2_ & 1" (cast_expression "(int)uStack_3a0._2_2_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "uStack_3a0._2_2_" (identifier "uStack_3a0") (. ".") (field_identifier "_2_2_"))) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar2 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar2 = FUN_0001868c(pppppppiVar11)" (identifier "iVar2") (= "=") (call_expression "FUN_0001868c(pppppppiVar11)" (identifier "FUN_0001868c") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";"))) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (if_statement "if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;" (if "if") (parenthesized_expression "(ppppppiVar10 == (int ******)0x14)" (( "(") (binary_expression "ppppppiVar10 == (int ******)0x14" (identifier "ppppppiVar10") (== "==") (cast_expression "(int ******)0x14" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x14"))) () ")")) (goto_statement "goto LAB_0001c01c;" (goto "goto") (statement_identifier "LAB_0001c01c") (; ";"))) (} "}")))) (goto_statement "goto LAB_0001bc2c;" (goto "goto") (statement_identifier "LAB_0001bc2c") (; ";")) (} "}"))) (expression_statement "pppppppiStack_3b8 = (int *******)0x0;" (assignment_expression "pppppppiStack_3b8 = (int *******)0x0" (identifier "pppppppiStack_3b8") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0001bc90:\n  uStack_3b4 = 0;" (statement_identifier "LAB_0001bc90") (: ":") (expression_statement "uStack_3b4 = 0;" (assignment_expression "uStack_3b4 = 0" (identifier "uStack_3b4") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pppppppiVar16 = (int *******)&pppppppiStack_3b8;" (assignment_expression "pppppppiVar16 = (int *******)&pppppppiStack_3b8" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)&pppppppiStack_3b8" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppiStack_3b8" (& "&") (identifier "pppppppiStack_3b8")))) (; ";")) (if_statement "if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;" (if "if") (parenthesized_expression "(pppppppiVar24 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar24 != (int *******)0x0" (identifier "pppppppiVar24") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001bc98;" (goto "goto") (statement_identifier "LAB_0001bc98") (; ";"))) (labeled_statement "LAB_0001be20:\n  unaff_s6 = appppppiStack_31c;" (statement_identifier "LAB_0001be20") (: ":") (expression_statement "unaff_s6 = appppppiStack_31c;" (assignment_expression "unaff_s6 = appppppiStack_31c" (identifier "unaff_s6") (= "=") (identifier "appppppiStack_31c")) (; ";"))) (expression_statement "pppppppiVar7 = appppppiStack_39c;" (assignment_expression "pppppppiVar7 = appppppiStack_39c" (identifier "pppppppiVar7") (= "=") (identifier "appppppiStack_39c")) (; ";")) (do_statement "do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  } while (unaff_s6 != pppppppiVar7);" (do "do") (compound_statement "{\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n  }" ({ "{") (expression_statement "*pppppppiVar7 = (int ******)0x0;" (assignment_expression "*pppppppiVar7 = (int ******)0x0" (pointer_expression "*pppppppiVar7" (* "*") (identifier "pppppppiVar7")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar7 = pppppppiVar7 + 1;" (assignment_expression "pppppppiVar7 = pppppppiVar7 + 1" (identifier "pppppppiVar7") (= "=") (binary_expression "pppppppiVar7 + 1" (identifier "pppppppiVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s6 != pppppppiVar7)" (( "(") (binary_expression "unaff_s6 != pppppppiVar7" (identifier "unaff_s6") (!= "!=") (identifier "pppppppiVar7")) () ")")) (; ";")) (expression_statement "unaff_s7 = appppppiStack_29c;" (assignment_expression "unaff_s7 = appppppiStack_29c" (identifier "unaff_s7") (= "=") (identifier "appppppiStack_29c")) (; ";")) (expression_statement "pppppppiVar7 = unaff_s6;" (assignment_expression "pppppppiVar7 = unaff_s6" (identifier "pppppppiVar7") (= "=") (identifier "unaff_s6")) (; ";")) (do_statement "do {\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  } while (unaff_s7 != pppppppiVar7);" (do "do") (compound_statement "{\n    *pppppppiVar7 = (int ******)0x0;\n    pppppppiVar7 = pppppppiVar7 + 1;\n    pppppppiVar8 = unaff_s7;\n  }" ({ "{") (expression_statement "*pppppppiVar7 = (int ******)0x0;" (assignment_expression "*pppppppiVar7 = (int ******)0x0" (pointer_expression "*pppppppiVar7" (* "*") (identifier "pppppppiVar7")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar7 = pppppppiVar7 + 1;" (assignment_expression "pppppppiVar7 = pppppppiVar7 + 1" (identifier "pppppppiVar7") (= "=") (binary_expression "pppppppiVar7 + 1" (identifier "pppppppiVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar8 = unaff_s7;" (assignment_expression "pppppppiVar8 = unaff_s7" (identifier "pppppppiVar8") (= "=") (identifier "unaff_s7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s7 != pppppppiVar7)" (( "(") (binary_expression "unaff_s7 != pppppppiVar7" (identifier "unaff_s7") (!= "!=") (identifier "pppppppiVar7")) () ")")) (; ";")) (do_statement "do {\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  } while (appppppiStack_21c != pppppppiVar8);" (do "do") (compound_statement "{\n    *pppppppiVar8 = (int ******)0x0;\n    pppppppiVar8 = pppppppiVar8 + 1;\n  }" ({ "{") (expression_statement "*pppppppiVar8 = (int ******)0x0;" (assignment_expression "*pppppppiVar8 = (int ******)0x0" (pointer_expression "*pppppppiVar8" (* "*") (identifier "pppppppiVar8")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar8 = pppppppiVar8 + 1;" (assignment_expression "pppppppiVar8 = pppppppiVar8 + 1" (identifier "pppppppiVar8") (= "=") (binary_expression "pppppppiVar8 + 1" (identifier "pppppppiVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(appppppiStack_21c != pppppppiVar8)" (( "(") (binary_expression "appppppiStack_21c != pppppppiVar8" (identifier "appppppiStack_21c") (!= "!=") (identifier "pppppppiVar8")) () ")")) (; ";")) (expression_statement "iStack_3c0 = -1;" (assignment_expression "iStack_3c0 = -1" (identifier "iStack_3c0") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (ppppppiVar5 != (int ******)0x1) {\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" (if "if") (parenthesized_expression "(ppppppiVar5 != (int ******)0x1)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x1" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x1" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }\n    goto LAB_0001bcc4;\n  }" ({ "{") (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }\n    else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x0" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppiVar17 = (int *******)0x400;\n      pppppppiStack_3c8 = appppppiStack_39c;\n      pppppppiStack_3c4 = pppppppiVar16;\n      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);\n      if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }\nLAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);\n      FUN_00020df0(pppppppiVar11[6]);\n    }" ({ "{") (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)0x400" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "pppppppiStack_3c8 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c8 = appppppiStack_39c" (identifier "pppppppiStack_3c8") (= "=") (identifier "appppppiStack_39c")) (; ";")) (expression_statement "pppppppiStack_3c4 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c4 = pppppppiVar16" (identifier "pppppppiStack_3c4") (= "=") (identifier "pppppppiVar16")) (; ";")) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" (identifier "iVar2") (= "=") (call_expression "FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" (identifier "FUN_00022130") (argument_list "(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0)" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (, ",") (identifier "appppppiStack_39c") (, ",") (pointer_expression "&iStack_3c0" (& "&") (identifier "iStack_3c0")) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = iStack_3c0 + 1;\n        pppppppiVar7 = pppppppiStack_3c8;\n        pppppppiVar16 = pppppppiStack_3c4;\n        goto LAB_0001be8c;\n      }" ({ "{") (expression_statement "iVar2 = iStack_3c0 + 1;" (assignment_expression "iVar2 = iStack_3c0 + 1" (identifier "iVar2") (= "=") (binary_expression "iStack_3c0 + 1" (identifier "iStack_3c0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar7 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar7 = pppppppiStack_3c8" (identifier "pppppppiVar7") (= "=") (identifier "pppppppiStack_3c8")) (; ";")) (expression_statement "pppppppiVar16 = pppppppiStack_3c4;" (assignment_expression "pppppppiVar16 = pppppppiStack_3c4" (identifier "pppppppiVar16") (= "=") (identifier "pppppppiStack_3c4")) (; ";")) (goto_statement "goto LAB_0001be8c;" (goto "goto") (statement_identifier "LAB_0001be8c") (; ";")) (} "}"))) (labeled_statement "LAB_0001c364:\n      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);" (statement_identifier "LAB_0001c364") (: ":") (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x348c")) () ")")))) (; ";"))) (expression_statement "FUN_00020df0(pppppppiVar11[6]);" (call_expression "FUN_00020df0(pppppppiVar11[6])" (identifier "FUN_00020df0") (argument_list "(pppppppiVar11[6])" (( "(") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" (else "else") (compound_statement "{\n      if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }\n      iVar2 = 0;\n      pppppppiVar7 = appppppiStack_39c;\n      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;\n    }" ({ "{") (if_statement "if (ppppppiVar5 == (int ******)0x2) {\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x2)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x2" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x2" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        pppppppiVar17 = (int *******)0x400;\n        pppppppiStack_3c8 = pppppppiVar16;\n        pppppppiStack_3c4 = appppppiStack_39c;\n        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);\n        if (iVar2 != 0) goto LAB_0001c1ec;\n        goto LAB_0001c364;\n      }" ({ "{") (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)0x400" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "pppppppiStack_3c8 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar16" (identifier "pppppppiStack_3c8") (= "=") (identifier "pppppppiVar16")) (; ";")) (expression_statement "pppppppiStack_3c4 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c4 = appppppiStack_39c" (identifier "pppppppiStack_3c4") (= "=") (identifier "appppppiStack_39c")) (; ";")) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" (identifier "iVar2") (= "=") (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" (identifier "FUN_00022130") (argument_list "(pppppppiVar11[0x29],unaff_s7,&iStack_3c0)" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (, ",") (identifier "unaff_s7") (, ",") (pointer_expression "&iStack_3c0" (& "&") (identifier "iStack_3c0")) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_0001c1ec;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c1ec;" (goto "goto") (statement_identifier "LAB_0001c1ec") (; ";"))) (goto_statement "goto LAB_0001c364;" (goto "goto") (statement_identifier "LAB_0001c364") (; ";")) (} "}"))) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiVar7 = appppppiStack_39c;" (assignment_expression "pppppppiVar7 = appppppiStack_39c" (identifier "pppppppiVar7") (= "=") (identifier "appppppiStack_39c")) (; ";")) (if_statement "if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;" (if "if") (parenthesized_expression "(ppppppiVar5 != (int ******)0x3)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x3" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x3" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x3"))) () ")")) (goto_statement "goto LAB_0001be8c;" (goto "goto") (statement_identifier "LAB_0001be8c") (; ";"))) (} "}")))) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";")) (} "}"))) (expression_statement "pppppppiVar17 = (int *******)0x400;" (assignment_expression "pppppppiVar17 = (int *******)0x400" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)0x400" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "pppppppiStack_3c8 = pppppppiVar16;" (assignment_expression "pppppppiStack_3c8 = pppppppiVar16" (identifier "pppppppiStack_3c8") (= "=") (identifier "pppppppiVar16")) (; ";")) (expression_statement "pppppppiStack_3c4 = appppppiStack_39c;" (assignment_expression "pppppppiStack_3c4 = appppppiStack_39c" (identifier "pppppppiStack_3c4") (= "=") (identifier "appppppiStack_39c")) (; ";")) (expression_statement "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);" (assignment_expression "iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" (identifier "iVar2") (= "=") (call_expression "FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" (identifier "FUN_00022130") (argument_list "(pppppppiVar11[0x29],unaff_s6,&iStack_3c0)" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) (, ",") (identifier "unaff_s6") (, ",") (pointer_expression "&iStack_3c0" (& "&") (identifier "iStack_3c0")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0001c364;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001c364;" (goto "goto") (statement_identifier "LAB_0001c364") (; ";"))) (labeled_statement "LAB_0001c1ec:\n  iVar2 = iStack_3c0 + 1;" (statement_identifier "LAB_0001c1ec") (: ":") (expression_statement "iVar2 = iStack_3c0 + 1;" (assignment_expression "iVar2 = iStack_3c0 + 1" (identifier "iVar2") (= "=") (binary_expression "iStack_3c0 + 1" (identifier "iStack_3c0") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pppppppiVar7 = pppppppiStack_3c4;" (assignment_expression "pppppppiVar7 = pppppppiStack_3c4" (identifier "pppppppiVar7") (= "=") (identifier "pppppppiStack_3c4")) (; ";")) (expression_statement "pppppppiVar16 = pppppppiStack_3c8;" (assignment_expression "pppppppiVar16 = pppppppiStack_3c8" (identifier "pppppppiVar16") (= "=") (identifier "pppppppiStack_3c8")) (; ";")) (labeled_statement "LAB_0001be8c:\n  pppppppiVar14 = pppppppiVar7;" (statement_identifier "LAB_0001be8c") (: ":") (expression_statement "pppppppiVar14 = pppppppiVar7;" (assignment_expression "pppppppiVar14 = pppppppiVar7" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar7")) (; ";"))) (expression_statement "pppppppiVar17 = unaff_s7;" (assignment_expression "pppppppiVar17 = unaff_s7" (identifier "pppppppiVar17") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiStack_3e0 = pppppppiVar16;" (assignment_expression "pppppppiStack_3e0 = pppppppiVar16" (identifier "pppppppiStack_3e0") (= "=") (identifier "pppppppiVar16")) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" (( "(") (binary_expression "pcStack_3d8 + -0x7d6c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(iVar2,pppppppiVar14,unaff_s6)" (( "(") (identifier "iVar2") (, ",") (identifier "pppppppiVar14") (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    pppppppiVar16 = (int *******)*puVar9;\n    unaff_s6 = pppppppiVar16;\n    if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }\n    goto LAB_0001c1b0;\n  }" ({ "{") (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar16 = (int *******)*puVar9;" (assignment_expression "pppppppiVar16 = (int *******)*puVar9" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)*puVar9" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "unaff_s6 = pppppppiVar16;" (assignment_expression "unaff_s6 = pppppppiVar16" (identifier "unaff_s6") (= "=") (identifier "pppppppiVar16")) (; ";")) (if_statement "if (pppppppiVar16 != (int *******)0x4) {\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }" (if "if") (parenthesized_expression "(pppppppiVar16 != (int *******)0x4)" (( "(") (binary_expression "pppppppiVar16 != (int *******)0x4" (identifier "pppppppiVar16") (!= "!=") (cast_expression "(int *******)0x4" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n      pppppppiVar25 = (int *******)pppppppiVar11[6];\n      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);\n      pppppppiVar18 = pppppppiVar25;\n      goto LAB_0001c18c;\n    }" ({ "{") (expression_statement "pppppppiVar25 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar25 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)pppppppiVar11[6]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" (( "(") (binary_expression "pcStack_3d8 + -0x7ddc" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "(pppppppiVar16)" (( "(") (identifier "pppppppiVar16") () ")"))))) (; ";")) (expression_statement "pppppppiVar18 = pppppppiVar25;" (assignment_expression "pppppppiVar18 = pppppppiVar25" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar25")) (; ";")) (goto_statement "goto LAB_0001c18c;" (goto "goto") (statement_identifier "LAB_0001c18c") (; ";")) (} "}"))) (goto_statement "goto LAB_0001c1b0;" (goto "goto") (statement_identifier "LAB_0001c1b0") (; ";")) (} "}"))) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29])" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29])" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d84)" (( "(") (binary_expression "pcStack_3d8 + -0x7d84" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d84")) () ")"))))) () ")")) (argument_list "(pppppppiVar11[0x29])" (( "(") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]")) () ")")))) (; ";")) (expression_statement "unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)\n  ;" (assignment_expression "unaff_s6 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" (identifier "unaff_s6") (= "=") (cast_expression "(int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)" (( "(") (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2])" (( "(") (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" (( "(") (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)appppppiStack_39c[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "appppppiStack_39c[iVar2]" (identifier "appppppiStack_39c") ([ "[") (identifier "iVar2") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d84)" (( "(") (binary_expression "pcStack_3d8 + -0x7d84" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)\n  ;" (assignment_expression "unaff_s7 = (int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)\n             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)" (( "(") (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2])" (( "(") (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" (( "(") (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)appppppiStack_31c[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "appppppiStack_31c[iVar2]" (identifier "appppppiStack_31c") ([ "[") (identifier "iVar2") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7d84))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d84))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d84)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d84)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d84)" (( "(") (binary_expression "pcStack_3d8 + -0x7d84" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d84")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);" (assignment_expression "pppppppiVar17 =\n       (int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)\n       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0)" (( "(") (binary_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0" (parenthesized_expression "(1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2])" (( "(") (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]" (binary_expression "1 << ((uint)pppppppiVar11[0x29] & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppppiVar11[0x29] & 0x1f)" (( "(") (binary_expression "(uint)pppppppiVar11[0x29] & 0x1f" (cast_expression "(uint)pppppppiVar11[0x29]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar11[0x29]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x29") (] "]"))) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)appppppiStack_29c[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "appppppiStack_29c[iVar2]" (identifier "appppppiStack_29c") ([ "[") (identifier "iVar2") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "pppppppiVar14 = unaff_s6;" (assignment_expression "pppppppiVar14 = unaff_s6" (identifier "pppppppiVar14") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pppppppiVar16 = unaff_s7;" (assignment_expression "pppppppiVar16 = unaff_s7" (identifier "pppppppiVar16") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iVar2 = FUN_0001868c(pppppppiVar11);" (assignment_expression "iVar2 = FUN_0001868c(pppppppiVar11)" (identifier "iVar2") (= "=") (call_expression "FUN_0001868c(pppppppiVar11)" (identifier "FUN_0001868c") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0001bcc4;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bcc4;" (goto "goto") (statement_identifier "LAB_0001bcc4") (; ";"))) (expression_statement "ppppppiVar10 = pppppppiVar11[0x2d];" (assignment_expression "ppppppiVar10 = pppppppiVar11[0x2d]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar11[0x2d]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (if_statement "if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;" (if "if") (parenthesized_expression "(ppppppiVar10 != (int ******)0x14)" (( "(") (binary_expression "ppppppiVar10 != (int ******)0x14" (identifier "ppppppiVar10") (!= "!=") (cast_expression "(int ******)0x14" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x14"))) () ")")) (goto_statement "goto LAB_0001bc2c;" (goto "goto") (statement_identifier "LAB_0001bc2c") (; ";"))) (labeled_statement "LAB_0001c01c:\n  if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" (statement_identifier "LAB_0001c01c") (: ":") (if_statement "if ((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" (if "if") (parenthesized_expression "((ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'))" (( "(") (binary_expression "(ppppppiVar21[0x12] != (int *****)0x0) &&\n     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (parenthesized_expression "(ppppppiVar21[0x12] != (int *****)0x0)" (( "(") (binary_expression "ppppppiVar21[0x12] != (int *****)0x0" (subscript_expression "ppppppiVar21[0x12]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x12") (] "]")) (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')" (( "(") (comma_expression "pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0'" (assignment_expression "pppppppiVar17 = (int *******)0x0" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (, ",") (binary_expression "*(char *)(pppppppiVar11 + 0x28) != '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x28)" (* "*") (cast_expression "(char *)(pppppppiVar11 + 0x28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar11 + 0x28)" (( "(") (binary_expression "pppppppiVar11 + 0x28" (identifier "pppppppiVar11") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n    pppppppiVar16 = pppppppiVar11 + 0xb;\n    pppppppiVar14 = pppppppiVar11;\n    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);\n  }" ({ "{") (expression_statement "pppppppiVar16 = pppppppiVar11 + 0xb;" (assignment_expression "pppppppiVar16 = pppppppiVar11 + 0xb" (identifier "pppppppiVar16") (= "=") (binary_expression "pppppppiVar11 + 0xb" (identifier "pppppppiVar11") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar11;" (assignment_expression "pppppppiVar14 = pppppppiVar11" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar11")) (; ";")) (expression_statement "(*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);" (call_expression "(*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13])" (parenthesized_expression "(*(code *)ppppppiVar21[0x12])" (( "(") (pointer_expression "*(code *)ppppppiVar21[0x12]" (* "*") (cast_expression "(code *)ppppppiVar21[0x12]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppiVar21[0x12]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x12") (] "]")))) () ")")) (argument_list "(ppppppiVar21[0x13])" (( "(") (subscript_expression "ppppppiVar21[0x13]" (identifier "ppppppiVar21") ([ "[") (number_literal "0x13") (] "]")) () ")"))) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(pppppppiVar11 + 0x28) = 0;" (assignment_expression "*(undefined1 *)(pppppppiVar11 + 0x28) = 0" (pointer_expression "*(undefined1 *)(pppppppiVar11 + 0x28)" (* "*") (cast_expression "(undefined1 *)(pppppppiVar11 + 0x28)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar11 + 0x28)" (( "(") (binary_expression "pppppppiVar11 + 0x28" (identifier "pppppppiVar11") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s6 = (int *******)pppppppiVar11[0x38];" (assignment_expression "unaff_s6 = (int *******)pppppppiVar11[0x38]" (identifier "unaff_s6") (= "=") (cast_expression "(int *******)pppppppiVar11[0x38]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar11[0x38]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x38") (] "]")))) (; ";")) (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }\n  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" (if "if") (parenthesized_expression "(((uint)pppppppiVar11[6][0x3e] & 0x42) == 2)" (( "(") (binary_expression "((uint)pppppppiVar11[6][0x3e] & 0x42) == 2" (parenthesized_expression "((uint)pppppppiVar11[6][0x3e] & 0x42)" (( "(") (binary_expression "(uint)pppppppiVar11[6][0x3e] & 0x42" (cast_expression "(uint)pppppppiVar11[6][0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar11[6][0x3e]" (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")) ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "0x42")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);\n    do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);\n    ppppppiVar21 = pppppppiVar11[6];\n    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);\n    pppppppiVar16 = pppppppiVar18;\n    FUN_00020df0(ppppppiVar21);\n  }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);" (assignment_expression "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(pcStack_3d8 + -0x7fac)" (* "*") (cast_expression "(undefined4 *)(pcStack_3d8 + -0x7fac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fac)" (( "(") (binary_expression "pcStack_3d8 + -0x7fac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fac")) () ")"))))) (; ";")) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" (identifier "pppppppiVar24") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd8" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd8")) () ")")))) (+ "+") (number_literal "0x7e20")) () ")")))) (; ";")) (expression_statement "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);" (assignment_expression "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" (identifier "ppppppiVar21") (= "=") (cast_expression "(int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fac)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fac)" (( "(") (binary_expression "pcStack_3d8 + -0x7fac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fac")) () ")")))) (+ "+") (number_literal "-0x7be0")) () ")")))) (; ";")) (do_statement "do {\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    } while (pppppppiVar18 == (int *******)0x4);" (do "do") (compound_statement "{\n      while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }\n      pppppppiStack_3e0 = (int *******)0x0;\n      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }\n      pppppppiVar14 = unaff_s7;\n      pppppppiVar16 = pppppppiVar26;\n      pppppppiVar17 = pppppppiVar18;\n      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);\n      if (-1 < iVar2) goto LAB_0001c4bc;\n      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n      pppppppiVar18 = (int *******)*puVar9;\n    }" ({ "{") (while_statement "while( true ) {\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        unaff_s7 = appppppiStack_21c;\n        pppppppiVar25 = unaff_s7;\n        if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;\n        do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);\n        do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);\n        do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);\n        uStack_3dc = 0x400;\n        pppppppiStack_3e0 = &ppppppiStack_3bc;\n        ppppppiStack_3bc = (int ******)0xffffffff;\n        pppppppiVar16 = pppppppiVar26;\n        pppppppiVar17 = pppppppiVar18;\n        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);\n        if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }\n        if (ppppppiStack_3bc != (int ******)0xffffffff) break;\nLAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;\n        FUN_00018420(unaff_s6);\n        FUN_00018878(unaff_s6);\n        pppppppiVar14 = unaff_s7;\n        pppppppiVar16 = pppppppiVar26;\n      }" ({ "{") (expression_statement "unaff_s7 = appppppiStack_21c;" (assignment_expression "unaff_s7 = appppppiStack_21c" (identifier "unaff_s7") (= "=") (identifier "appppppiStack_21c")) (; ";")) (expression_statement "pppppppiVar25 = unaff_s7;" (assignment_expression "pppppppiVar25 = unaff_s7" (identifier "pppppppiVar25") (= "=") (identifier "unaff_s7")) (; ";")) (if_statement "if ((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))\n        goto LAB_0001c074;" (if "if") (parenthesized_expression "((((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))" (( "(") (binary_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0)" (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0))" (( "(") (binary_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&\n            (unaff_s6[10] == (int ******)0x0)" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0))" (( "(") (binary_expression "(unaff_s6[8] == (int ******)0x0) &&\n             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)" (parenthesized_expression "(unaff_s6[8] == (int ******)0x0)" (( "(") (binary_expression "unaff_s6[8] == (int ******)0x0" (subscript_expression "unaff_s6[8]" (identifier "unaff_s6") ([ "[") (number_literal "8") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)" (( "(") (comma_expression "pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0" (assignment_expression "pppppppiVar26 = appppppiStack_19c" (identifier "pppppppiVar26") (= "=") (identifier "appppppiStack_19c")) (, ",") (binary_expression "unaff_s6[9] == (int ******)0x0" (subscript_expression "unaff_s6[9]" (identifier "unaff_s6") ([ "[") (number_literal "9") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s6[10] == (int ******)0x0)" (( "(") (binary_expression "unaff_s6[10] == (int ******)0x0" (subscript_expression "unaff_s6[10]" (identifier "unaff_s6") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s6[0xb] == (int ******)0x0)" (( "(") (binary_expression "unaff_s6[0xb] == (int ******)0x0" (subscript_expression "unaff_s6[0xb]" (identifier "unaff_s6") ([ "[") (number_literal "0xb") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001c074;" (goto "goto") (statement_identifier "LAB_0001c074") (; ";"))) (do_statement "do {\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        } while (pppppppiVar26 != pppppppiVar25);" (do "do") (compound_statement "{\n          pppppppiVar26 = appppppiStack_19c;\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          pppppppiVar18 = appppppiStack_11c;\n          pppppppiVar14 = pppppppiVar26;\n        }" ({ "{") (expression_statement "pppppppiVar26 = appppppiStack_19c;" (assignment_expression "pppppppiVar26 = appppppiStack_19c" (identifier "pppppppiVar26") (= "=") (identifier "appppppiStack_19c")) (; ";")) (expression_statement "*pppppppiVar25 = (int ******)0x0;" (assignment_expression "*pppppppiVar25 = (int ******)0x0" (pointer_expression "*pppppppiVar25" (* "*") (identifier "pppppppiVar25")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar25 + 1;" (assignment_expression "pppppppiVar25 = pppppppiVar25 + 1" (identifier "pppppppiVar25") (= "=") (binary_expression "pppppppiVar25 + 1" (identifier "pppppppiVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar18 = appppppiStack_11c;" (assignment_expression "pppppppiVar18 = appppppiStack_11c" (identifier "pppppppiVar18") (= "=") (identifier "appppppiStack_11c")) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar26;" (assignment_expression "pppppppiVar14 = pppppppiVar26" (identifier "pppppppiVar14") (= "=") (identifier "pppppppiVar26")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar26 != pppppppiVar25)" (( "(") (binary_expression "pppppppiVar26 != pppppppiVar25" (identifier "pppppppiVar26") (!= "!=") (identifier "pppppppiVar25")) () ")")) (; ";")) (do_statement "do {\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        } while (pppppppiVar18 != pppppppiVar14);" (do "do") (compound_statement "{\n          *pppppppiVar14 = (int ******)0x0;\n          pppppppiVar14 = pppppppiVar14 + 1;\n          pppppppiVar25 = pppppppiVar18;\n        }" ({ "{") (expression_statement "*pppppppiVar14 = (int ******)0x0;" (assignment_expression "*pppppppiVar14 = (int ******)0x0" (pointer_expression "*pppppppiVar14" (* "*") (identifier "pppppppiVar14")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar14 = pppppppiVar14 + 1;" (assignment_expression "pppppppiVar14 = pppppppiVar14 + 1" (identifier "pppppppiVar14") (= "=") (binary_expression "pppppppiVar14 + 1" (identifier "pppppppiVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar18;" (assignment_expression "pppppppiVar25 = pppppppiVar18" (identifier "pppppppiVar25") (= "=") (identifier "pppppppiVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar18 != pppppppiVar14)" (( "(") (binary_expression "pppppppiVar18 != pppppppiVar14" (identifier "pppppppiVar18") (!= "!=") (identifier "pppppppiVar14")) () ")")) (; ";")) (do_statement "do {\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        } while (pppppppiVar25 != &ppppppiStack_9c);" (do "do") (compound_statement "{\n          *pppppppiVar25 = (int ******)0x0;\n          pppppppiVar25 = pppppppiVar25 + 1;\n          ppppppiVar27 = (int ******)0xffffffff;\n        }" ({ "{") (expression_statement "*pppppppiVar25 = (int ******)0x0;" (assignment_expression "*pppppppiVar25 = (int ******)0x0" (pointer_expression "*pppppppiVar25" (* "*") (identifier "pppppppiVar25")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar25 = pppppppiVar25 + 1;" (assignment_expression "pppppppiVar25 = pppppppiVar25 + 1" (identifier "pppppppiVar25") (= "=") (binary_expression "pppppppiVar25 + 1" (identifier "pppppppiVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppiVar27 = (int ******)0xffffffff;" (assignment_expression "ppppppiVar27 = (int ******)0xffffffff" (identifier "ppppppiVar27") (= "=") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar25 != &ppppppiStack_9c)" (( "(") (binary_expression "pppppppiVar25 != &ppppppiStack_9c" (identifier "pppppppiVar25") (!= "!=") (pointer_expression "&ppppppiStack_9c" (& "&") (identifier "ppppppiStack_9c"))) () ")")) (; ";")) (expression_statement "uStack_3dc = 0x400;" (assignment_expression "uStack_3dc = 0x400" (identifier "uStack_3dc") (= "=") (number_literal "0x400")) (; ";")) (expression_statement "pppppppiStack_3e0 = &ppppppiStack_3bc;" (assignment_expression "pppppppiStack_3e0 = &ppppppiStack_3bc" (identifier "pppppppiStack_3e0") (= "=") (pointer_expression "&ppppppiStack_3bc" (& "&") (identifier "ppppppiStack_3bc"))) (; ";")) (expression_statement "ppppppiStack_3bc = (int ******)0xffffffff;" (assignment_expression "ppppppiStack_3bc = (int ******)0xffffffff" (identifier "ppppppiStack_3bc") (= "=") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" (identifier "pppppppiVar16") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" (identifier "pppppppiVar17") (= "=") (identifier "pppppppiVar18")) (; ";")) (expression_statement "iVar2 = FUN_00017e20(unaff_s6,unaff_s7);" (assignment_expression "iVar2 = FUN_00017e20(unaff_s6,unaff_s7)" (identifier "iVar2") (= "=") (call_expression "FUN_00017e20(unaff_s6,unaff_s7)" (identifier "FUN_00017e20") (argument_list "(unaff_s6,unaff_s7)" (( "(") (identifier "unaff_s6") (, ",") (identifier "unaff_s7") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);\n          FUN_00020df0(pppppppiVar11[6]);\n          goto LAB_0001c074;\n        }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3434")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(pppppppiVar11[6]);" (call_expression "FUN_00020df0(pppppppiVar11[6])" (identifier "FUN_00020df0") (argument_list "(pppppppiVar11[6])" (( "(") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")) () ")"))) (; ";")) (goto_statement "goto LAB_0001c074;" (goto "goto") (statement_identifier "LAB_0001c074") (; ";")) (} "}"))) (if_statement "if (ppppppiStack_3bc != (int ******)0xffffffff) break;" (if "if") (parenthesized_expression "(ppppppiStack_3bc != (int ******)0xffffffff)" (( "(") (binary_expression "ppppppiStack_3bc != (int ******)0xffffffff" (identifier "ppppppiStack_3bc") (!= "!=") (cast_expression "(int ******)0xffffffff" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0001c4bc:\n        pppppppiVar17 = pppppppiVar18;" (statement_identifier "LAB_0001c4bc") (: ":") (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" (identifier "pppppppiVar17") (= "=") (identifier "pppppppiVar18")) (; ";"))) (expression_statement "FUN_00018420(unaff_s6);" (call_expression "FUN_00018420(unaff_s6)" (identifier "FUN_00018420") (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "FUN_00018878(unaff_s6);" (call_expression "FUN_00018878(unaff_s6)" (identifier "FUN_00018878") (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" (identifier "pppppppiVar14") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" (identifier "pppppppiVar16") (= "=") (identifier "pppppppiVar26")) (; ";")) (} "}"))) (expression_statement "pppppppiStack_3e0 = (int *******)0x0;" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" (identifier "pppppppiStack_3e0") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }" (if "if") (parenthesized_expression "((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]))" (( "(") (binary_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0') &&\n         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) != '\0')" (( "(") (binary_expression "*(char *)(pppppppiVar11 + 0x3d) != '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" (* "*") (cast_expression "(char *)(pppppppiVar11 + 0x3d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar11 + 0x3d)" (( "(") (binary_expression "pppppppiVar11 + 0x3d" (identifier "pppppppiVar11") (+ "+") (number_literal "0x3d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])" (( "(") (comma_expression "pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8]" (assignment_expression "pppppppiStack_3e0 = (int *******)0x0" (identifier "pppppppiStack_3e0") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (, ",") (binary_expression "unaff_s6[10] < unaff_s6[8]" (subscript_expression "unaff_s6[10]" (identifier "unaff_s6") ([ "[") (number_literal "10") (] "]")) (< "<") (subscript_expression "unaff_s6[8]" (identifier "unaff_s6") ([ "[") (number_literal "8") (] "]")))) () ")"))) () ")")) (compound_statement "{\n        pppppppiStack_3e0 = &ppppppiStack_3b0;\n        ppppppiStack_3b0 = (int ******)0x0;\n        uStack_3ac = 0;\n      }" ({ "{") (expression_statement "pppppppiStack_3e0 = &ppppppiStack_3b0;" (assignment_expression "pppppppiStack_3e0 = &ppppppiStack_3b0" (identifier "pppppppiStack_3e0") (= "=") (pointer_expression "&ppppppiStack_3b0" (& "&") (identifier "ppppppiStack_3b0"))) (; ";")) (expression_statement "ppppppiStack_3b0 = (int ******)0x0;" (assignment_expression "ppppppiStack_3b0 = (int ******)0x0" (identifier "ppppppiStack_3b0") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_3ac = 0;" (assignment_expression "uStack_3ac = 0" (identifier "uStack_3ac") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pppppppiVar14 = unaff_s7;" (assignment_expression "pppppppiVar14 = unaff_s7" (identifier "pppppppiVar14") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiVar16 = pppppppiVar26;" (assignment_expression "pppppppiVar16 = pppppppiVar26" (identifier "pppppppiVar16") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "pppppppiVar17 = pppppppiVar18;" (assignment_expression "pppppppiVar17 = pppppppiVar18" (identifier "pppppppiVar17") (= "=") (identifier "pppppppiVar18")) (; ";")) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d6c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d6c)" (( "(") (binary_expression "pcStack_3d8 + -0x7d6c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "((int)ppppppiStack_3bc + 1)" (( "(") (binary_expression "(int)ppppppiStack_3bc + 1" (cast_expression "(int)ppppppiStack_3bc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiStack_3bc")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (-1 < iVar2) goto LAB_0001c4bc;" (if "if") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (goto_statement "goto LAB_0001c4bc;" (goto "goto") (statement_identifier "LAB_0001c4bc") (; ";"))) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar18 = (int *******)*puVar9;" (assignment_expression "pppppppiVar18 = (int *******)*puVar9" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)*puVar9" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppiVar18 == (int *******)0x4)" (( "(") (binary_expression "pppppppiVar18 == (int *******)0x4" (identifier "pppppppiVar18") (== "==") (cast_expression "(int *******)0x4" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) () ")")) (; ";")) (expression_statement "ppppppiVar21 = pppppppiVar11[6];" (assignment_expression "ppppppiVar21 = pppppppiVar11[6]" (identifier "ppppppiVar21") (= "=") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);" (assignment_expression "pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" (identifier "pppppppiVar17") (= "=") (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" (( "(") (binary_expression "pcStack_3d8 + -0x7ddc" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "(pppppppiVar18)" (( "(") (identifier "pppppppiVar18") () ")"))))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3470")) () ")")))) (; ";")) (expression_statement "pppppppiVar16 = pppppppiVar18;" (assignment_expression "pppppppiVar16 = pppppppiVar18" (identifier "pppppppiVar16") (= "=") (identifier "pppppppiVar18")) (; ";")) (expression_statement "FUN_00020df0(ppppppiVar21);" (call_expression "FUN_00020df0(ppppppiVar21)" (identifier "FUN_00020df0") (argument_list "(ppppppiVar21)" (( "(") (identifier "ppppppiVar21") () ")"))) (; ";")) (} "}")) (else_clause "else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" (else "else") (if_statement "if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" (if "if") (parenthesized_expression "(((uint)pppppppiVar11[6][0x3e] & 2) != 0)" (( "(") (binary_expression "((uint)pppppppiVar11[6][0x3e] & 2) != 0" (parenthesized_expression "((uint)pppppppiVar11[6][0x3e] & 2)" (( "(") (binary_expression "(uint)pppppppiVar11[6][0x3e] & 2" (cast_expression "(uint)pppppppiVar11[6][0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar11[6][0x3e]" (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")) ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pppppppiVar14 = appppppiStack_11c;\n    appppppiStack_11c[1] = (int ******)0x0;\n    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);\n    appppppiStack_11c[3] = (int ******)0x0;\n    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);\n    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);\n    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];\n    appppppiStack_11c[2] = unaff_s6[0x10];\n    do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);\n    pppppppiVar18 = (int *******)pppppppiVar11[6];\n    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();\n    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);\n    FUN_00020df0(pppppppiVar18);\n  }" ({ "{") (expression_statement "pppppppiVar14 = appppppiStack_11c;" (assignment_expression "pppppppiVar14 = appppppiStack_11c" (identifier "pppppppiVar14") (= "=") (identifier "appppppiStack_11c")) (; ";")) (expression_statement "appppppiStack_11c[1] = (int ******)0x0;" (assignment_expression "appppppiStack_11c[1] = (int ******)0x0" (subscript_expression "appppppiStack_11c[1]" (identifier "appppppiStack_11c") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);" (assignment_expression "pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" (identifier "pppppppiVar24") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd8" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd8")) () ")")))) (+ "+") (number_literal "0x7b40")) () ")")))) (; ";")) (expression_statement "appppppiStack_11c[3] = (int ******)0x0;" (assignment_expression "appppppiStack_11c[3] = (int ******)0x0" (subscript_expression "appppppiStack_11c[3]" (identifier "appppppiStack_11c") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);" (assignment_expression "ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" (identifier "ppppppiVar21") (= "=") (cast_expression "(int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd8)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd8)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd8" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd8")) () ")")))) (+ "+") (number_literal "0x7c40")) () ")")))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);" (assignment_expression "uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(pcStack_3d8 + -0x7fac)" (* "*") (cast_expression "(undefined4 *)(pcStack_3d8 + -0x7fac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fac)" (( "(") (binary_expression "pcStack_3d8 + -0x7fac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fac")) () ")"))))) (; ";")) (expression_statement "appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];" (assignment_expression "appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29]" (subscript_expression "appppppiStack_11c[0]" (identifier "appppppiStack_11c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int ******)(*unaff_s6)[0x29]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "(*unaff_s6)[0x29]" (parenthesized_expression "(*unaff_s6)" (( "(") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) () ")")) ([ "[") (number_literal "0x29") (] "]")))) (; ";")) (expression_statement "appppppiStack_11c[2] = unaff_s6[0x10];" (assignment_expression "appppppiStack_11c[2] = unaff_s6[0x10]" (subscript_expression "appppppiStack_11c[2]" (identifier "appppppiStack_11c") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "unaff_s6[0x10]" (identifier "unaff_s6") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    } while (*piVar4 == 4);" (do "do") (compound_statement "{\n      while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }\n      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();\n    }" ({ "{") (while_statement "while( true ) {\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;\n        FUN_00017b40(unaff_s6);\n        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }\n        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);\n        if (iVar2 < 0) break;\n        FUN_00017c40(unaff_s6,pppppppiVar14);\n        FUN_00018878();\n      }" ({ "{") (if_statement "if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;" (if "if") (parenthesized_expression "(((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0))))" (( "(") (binary_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&\n           ((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))" (parenthesized_expression "((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0))" (( "(") (binary_expression "(unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)" (parenthesized_expression "(unaff_s6[8] == (int ******)0x0)" (( "(") (binary_expression "unaff_s6[8] == (int ******)0x0" (subscript_expression "unaff_s6[8]" (identifier "unaff_s6") ([ "[") (number_literal "8") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s6[9] == (int ******)0x0)" (( "(") (binary_expression "unaff_s6[9] == (int ******)0x0" (subscript_expression "unaff_s6[9]" (identifier "unaff_s6") ([ "[") (number_literal "9") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))" (( "(") (parenthesized_expression "(unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0))" (( "(") (binary_expression "unaff_s6[10] == (int ******)0x0 &&\n            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)" (binary_expression "unaff_s6[10] == (int ******)0x0" (subscript_expression "unaff_s6[10]" (identifier "unaff_s6") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)" (( "(") (comma_expression "pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0" (assignment_expression "pppppppiVar18 = pppppppiVar14" (identifier "pppppppiVar18") (= "=") (identifier "pppppppiVar14")) (, ",") (binary_expression "unaff_s6[0xb] == (int ******)0x0" (subscript_expression "unaff_s6[0xb]" (identifier "unaff_s6") ([ "[") (number_literal "0xb") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0001c074;" (goto "goto") (statement_identifier "LAB_0001c074") (; ";"))) (expression_statement "FUN_00017b40(unaff_s6);" (call_expression "FUN_00017b40(unaff_s6)" (identifier "FUN_00017b40") (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (if_statement "if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {\n          pppppppiVar16 = (int *******)0xffffffff;\n        }\n        else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" (if "if") (parenthesized_expression "(*(char *)(pppppppiVar11 + 0x3d) == '\0')" (( "(") (binary_expression "*(char *)(pppppppiVar11 + 0x3d) == '\0'" (pointer_expression "*(char *)(pppppppiVar11 + 0x3d)" (* "*") (cast_expression "(char *)(pppppppiVar11 + 0x3d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppiVar11 + 0x3d)" (( "(") (binary_expression "pppppppiVar11 + 0x3d" (identifier "pppppppiVar11") (+ "+") (number_literal "0x3d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          pppppppiVar16 = (int *******)0xffffffff;\n        }" ({ "{") (expression_statement "pppppppiVar16 = (int *******)0xffffffff;" (assignment_expression "pppppppiVar16 = (int *******)0xffffffff" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)0xffffffff" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" (else "else") (compound_statement "{\n          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);\n        }" ({ "{") (expression_statement "pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);" (assignment_expression "pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)((unaff_s6[10] < unaff_s6[8]) - 1)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((unaff_s6[10] < unaff_s6[8]) - 1)" (( "(") (binary_expression "(unaff_s6[10] < unaff_s6[8]) - 1" (parenthesized_expression "(unaff_s6[10] < unaff_s6[8])" (( "(") (binary_expression "unaff_s6[10] < unaff_s6[8]" (subscript_expression "unaff_s6[10]" (identifier "unaff_s6") ([ "[") (number_literal "10") (] "]")) (< "<") (subscript_expression "unaff_s6[8]" (identifier "unaff_s6") ([ "[") (number_literal "8") (] "]"))) () ")")) (- "-") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);" (assignment_expression "iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2)" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7dac))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7dac)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7dac)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7dac)" (( "(") (binary_expression "pcStack_3d8 + -0x7dac" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(pppppppiVar14,2)" (( "(") (identifier "pppppppiVar14") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) break;" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_00017c40(unaff_s6,pppppppiVar14);" (call_expression "FUN_00017c40(unaff_s6,pppppppiVar14)" (identifier "FUN_00017c40") (argument_list "(unaff_s6,pppppppiVar14)" (( "(") (identifier "unaff_s6") (, ",") (identifier "pppppppiVar14") () ")"))) (; ";")) (expression_statement "FUN_00018878();" (call_expression "FUN_00018878()" (identifier "FUN_00018878") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();" (assignment_expression "piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcStack_3d8 + -0x7e2c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7e2c))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7e2c))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7e2c)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7e2c)" (( "(") (binary_expression "pcStack_3d8 + -0x7e2c" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7e2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar4 == 4)" (( "(") (binary_expression "*piVar4 == 4" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "4")) () ")")) (; ";")) (expression_statement "pppppppiVar18 = (int *******)pppppppiVar11[6];" (assignment_expression "pppppppiVar18 = (int *******)pppppppiVar11[6]" (identifier "pppppppiVar18") (= "=") (cast_expression "(int *******)pppppppiVar11[6]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppiVar11[6]" (identifier "pppppppiVar11") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();" (assignment_expression "pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))()" (identifier "pppppppiVar16") (= "=") (cast_expression "(int *******)(**(code **)(pcStack_3d8 + -0x7ddc))()" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcStack_3d8 + -0x7ddc))()" (parenthesized_expression "(**(code **)(pcStack_3d8 + -0x7ddc))" (( "(") (pointer_expression "**(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (pointer_expression "*(code **)(pcStack_3d8 + -0x7ddc)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7ddc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7ddc)" (( "(") (binary_expression "pcStack_3d8 + -0x7ddc" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7ddc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);" (assignment_expression "pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450)" (( "(") (binary_expression "*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450" (pointer_expression "*(int *)(pcStack_3d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_3d8 + -0x7fd4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x3450")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(pppppppiVar18);" (call_expression "FUN_00020df0(pppppppiVar18)" (identifier "FUN_00020df0") (argument_list "(pppppppiVar18)" (( "(") (identifier "pppppppiVar18") () ")"))) (; ";")) (} "}"))))) (labeled_statement "LAB_0001c074:\n  FUN_00014600(pppppppiVar11);" (statement_identifier "LAB_0001c074") (: ":") (expression_statement "FUN_00014600(pppppppiVar11);" (call_expression "FUN_00014600(pppppppiVar11)" (identifier "FUN_00014600") (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";"))) (expression_statement "pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);" (assignment_expression "pcVar31 = *(code **)(pcStack_3d8 + -0x7df4)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcStack_3d8 + -0x7df4)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7df4)" (( "(") (binary_expression "pcStack_3d8 + -0x7df4" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7df4")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)pppppppiVar11[0x38] + 0x51)" (* "*") (cast_expression "(undefined1 *)((int)pppppppiVar11[0x38] + 0x51)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppiVar11[0x38] + 0x51)" (( "(") (binary_expression "(int)pppppppiVar11[0x38] + 0x51" (cast_expression "(int)pppppppiVar11[0x38]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppiVar11[0x38]" (identifier "pppppppiVar11") ([ "[") (number_literal "0x38") (] "]"))) (+ "+") (number_literal "0x51")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "(*pcVar31)(pppppppiVar11);" (call_expression "(*pcVar31)(pppppppiVar11)" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "(pppppppiVar11)" (( "(") (identifier "pppppppiVar11") () ")"))) (; ";")) (labeled_statement "LAB_0001bd0c:\n  if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }" (statement_identifier "LAB_0001bd0c") (: ":") (if_statement "if (ppppppiStack_9c == (int ******)*piStack_3cc) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(ppppppiStack_9c == (int ******)*piStack_3cc)" (( "(") (binary_expression "ppppppiStack_9c == (int ******)*piStack_3cc" (identifier "ppppppiStack_9c") (== "==") (cast_expression "(int ******)*piStack_3cc" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*piStack_3cc" (* "*") (identifier "piStack_3cc")))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);" (assignment_expression "pcVar31 = *(code **)(pcStack_3d8 + -0x7d78)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcStack_3d8 + -0x7d78)" (* "*") (cast_expression "(code **)(pcStack_3d8 + -0x7d78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3d8 + -0x7d78)" (( "(") (binary_expression "pcStack_3d8 + -0x7d78" (identifier "pcStack_3d8") (+ "+") (number_literal "-0x7d78")) () ")"))))) (; ";")) (expression_statement "pcVar32 = FUN_0001c688;" (assignment_expression "pcVar32 = FUN_0001c688" (identifier "pcVar32") (= "=") (identifier "FUN_0001c688")) (; ";")) (expression_statement "ppppppiVar5 = ppppppiStack_9c;" (assignment_expression "ppppppiVar5 = ppppppiStack_9c" (identifier "ppppppiVar5") (= "=") (identifier "ppppppiStack_9c")) (; ";")) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar4 = *(int **)(pcVar31 + 0x22c64);" (assignment_expression "piVar4 = *(int **)(pcVar31 + 0x22c64)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(pcVar31 + 0x22c64)" (* "*") (cast_expression "(int **)(pcVar31 + 0x22c64)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c64)" (( "(") (binary_expression "pcVar31 + 0x22c64" (identifier "pcVar31") (+ "+") (number_literal "0x22c64")) () ")"))))) (; ";")) (expression_statement "iStack_41c = *piVar4;" (assignment_expression "iStack_41c = *piVar4" (identifier "iStack_41c") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "*(undefined1 *)(ppppppiVar5 + 0x39) = 0;" (assignment_expression "*(undefined1 *)(ppppppiVar5 + 0x39) = 0" (pointer_expression "*(undefined1 *)(ppppppiVar5 + 0x39)" (* "*") (cast_expression "(undefined1 *)(ppppppiVar5 + 0x39)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar5 + 0x39)" (( "(") (binary_expression "ppppppiVar5 + 0x39" (identifier "ppppppiVar5") (+ "+") (number_literal "0x39")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppiStack_418 = pppppppiVar18;" (assignment_expression "pppppppiStack_418 = pppppppiVar18" (identifier "pppppppiStack_418") (= "=") (identifier "pppppppiVar18")) (; ";")) (expression_statement "ppppppiStack_414 = ppppppiVar21;" (assignment_expression "ppppppiStack_414 = ppppppiVar21" (identifier "ppppppiStack_414") (= "=") (identifier "ppppppiVar21")) (; ";")) (expression_statement "pppppppiStack_410 = pppppppiVar24;" (assignment_expression "pppppppiStack_410 = pppppppiVar24" (identifier "pppppppiStack_410") (= "=") (identifier "pppppppiVar24")) (; ";")) (expression_statement "uStack_40c = uVar15;" (assignment_expression "uStack_40c = uVar15" (identifier "uStack_40c") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "pppppppiStack_408 = pppppppiVar26;" (assignment_expression "pppppppiStack_408 = pppppppiVar26" (identifier "pppppppiStack_408") (= "=") (identifier "pppppppiVar26")) (; ";")) (expression_statement "ppppppiStack_404 = ppppppiVar27;" (assignment_expression "ppppppiStack_404 = ppppppiVar27" (identifier "ppppppiStack_404") (= "=") (identifier "ppppppiVar27")) (; ";")) (expression_statement "pppppppiStack_400 = unaff_s6;" (assignment_expression "pppppppiStack_400 = unaff_s6" (identifier "pppppppiStack_400") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pppppppiStack_3fc = unaff_s7;" (assignment_expression "pppppppiStack_3fc = unaff_s7" (identifier "pppppppiStack_3fc") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppiStack_3f8 = pppppppiVar11;" (assignment_expression "pppppppiStack_3f8 = pppppppiVar11" (identifier "pppppppiStack_3f8") (= "=") (identifier "pppppppiVar11")) (; ";")) (expression_statement "pcStack_3f4 = pcVar32;" (assignment_expression "pcStack_3f4 = pcVar32" (identifier "pcStack_3f4") (= "=") (identifier "pcVar32")) (; ";")) (if_statement "if (ppppppiVar5[0x37] != (int *****)0xffffffff) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }" (if "if") (parenthesized_expression "(ppppppiVar5[0x37] != (int *****)0xffffffff)" (( "(") (binary_expression "ppppppiVar5[0x37] != (int *****)0xffffffff" (subscript_expression "ppppppiVar5[0x37]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x37") (] "]")) (!= "!=") (cast_expression "(int *****)0xffffffff" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))();\n    pppppiVar12 = ppppppiVar5[0x37];\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }\n  }" ({ "{") (expression_statement "iVar2 = (**(code **)(pcVar31 + 0x22c24))();" (assignment_expression "iVar2 = (**(code **)(pcVar31 + 0x22c24))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22c24))()" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c24)" (( "(") (binary_expression "pcVar31 + 0x22c24" (identifier "pcVar31") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppppiVar12 = ppppppiVar5[0x37];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x37]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[0x37]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x37") (] "]"))) (; ";")) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" (if "if") (parenthesized_expression "((int)pppppiVar12 < 0)" (( "(") (binary_expression "(int)pppppiVar12 < 0" (cast_expression "(int)pppppiVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppiVar12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" ({ "{") (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (identifier "uVar3") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" (( "(") (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppiVar12")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)pppppppiVar14[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar14[iVar2]" (identifier "pppppppiVar14") ([ "[") (identifier "iVar2") (] "]"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22c90);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22c90)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22c90)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c90)" (( "(") (binary_expression "pcVar31 + 0x22c90" (identifier "pcVar31") (+ "+") (number_literal "0x22c90")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" (else "else") (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n      pcVar32 = *(code **)(pcVar31 + 0x22c90);\n    }" ({ "{") (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (identifier "uVar3") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" (( "(") (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppiVar12")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)pppppppiVar14[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar14[iVar2]" (identifier "pppppppiVar14") ([ "[") (identifier "iVar2") (] "]"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22c90);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22c90)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22c90)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c90)" (( "(") (binary_expression "pcVar31 + 0x22c90" (identifier "pcVar31") (+ "+") (number_literal "0x22c90")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar3 != 0) {\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*pcVar32)(pppppiVar12,auStack_428,8);\n    }" ({ "{") (expression_statement "(*pcVar32)(pppppiVar12,auStack_428,8);" (call_expression "(*pcVar32)(pppppiVar12,auStack_428,8)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(pppppiVar12,auStack_428,8)" (( "(") (identifier "pppppiVar12") (, ",") (identifier "auStack_428") (, ",") (number_literal "8") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pppppiVar12 = ppppppiVar5[0x31];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x31]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[0x31]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x31") (] "]"))) (; ";")) (if_statement "if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }" (if "if") (parenthesized_expression "((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0'))" (( "(") (binary_expression "(pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')" (parenthesized_expression "(pppppiVar12 != (int *****)0xffffffff)" (( "(") (binary_expression "pppppiVar12 != (int *****)0xffffffff" (identifier "pppppiVar12") (!= "!=") (cast_expression "(int *****)0xffffffff" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)ppppppiVar5 + 0xe1) == '\0')" (( "(") (binary_expression "*(char *)((int)ppppppiVar5 + 0xe1) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xe1)" (* "*") (cast_expression "(char *)((int)ppppppiVar5 + 0xe1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar5 + 0xe1)" (( "(") (binary_expression "(int)ppppppiVar5 + 0xe1" (cast_expression "(int)ppppppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar5")) (+ "+") (number_literal "0xe1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);\n    if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }\n  }" ({ "{") (expression_statement "iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);" (assignment_expression "iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22c24))(pppppiVar12)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c24)" (( "(") (binary_expression "pcVar31 + 0x22c24" (identifier "pcVar31") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(pppppiVar12)" (( "(") (identifier "pppppiVar12") () ")")))) (; ";")) (if_statement "if ((int)pppppiVar12 < 0) {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }\n    else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" (if "if") (parenthesized_expression "((int)pppppiVar12 < 0)" (( "(") (binary_expression "(int)pppppiVar12 < 0" (cast_expression "(int)pppppiVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppiVar12")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" ({ "{") (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (identifier "uVar3") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" (( "(") (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppiVar12")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)pppppppiVar14[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar14[iVar2]" (identifier "pppppppiVar14") ([ "[") (identifier "iVar2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" (else "else") (compound_statement "{\n      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];\n    }" ({ "{") (expression_statement "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];" (assignment_expression "uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (identifier "uVar3") (= "=") (binary_expression "1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2]" (binary_expression "1 << ((uint)pppppiVar12 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)pppppiVar12 & 0x1f)" (( "(") (binary_expression "(uint)pppppiVar12 & 0x1f" (cast_expression "(uint)pppppiVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppiVar12")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)pppppppiVar14[iVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar14[iVar2]" (identifier "pppppppiVar14") ([ "[") (identifier "iVar2") (] "]"))))) (; ";")) (} "}")))) (if_statement "if (uVar3 != 0) {\n      FUN_0001afec(ppppppiVar5);\n    }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0001afec(ppppppiVar5);\n    }" ({ "{") (expression_statement "FUN_0001afec(ppppppiVar5);" (call_expression "FUN_0001afec(ppppppiVar5)" (identifier "FUN_0001afec") (argument_list "(ppppppiVar5)" (( "(") (identifier "ppppppiVar5") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" (if "if") (parenthesized_expression "((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0))" (( "(") (binary_expression "(((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)" (parenthesized_expression "(((uint)ppppppiVar5[0x3e] & 4) == 0)" (( "(") (binary_expression "((uint)ppppppiVar5[0x3e] & 4) == 0" (parenthesized_expression "((uint)ppppppiVar5[0x3e] & 4)" (( "(") (binary_expression "(uint)ppppppiVar5[0x3e] & 4" (cast_expression "(uint)ppppppiVar5[0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppiVar5[0x3e]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppppppiVar5[3] != (int *****)0x0)" (( "(") (binary_expression "ppppppiVar5[3] != (int *****)0x0" (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")) (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    iVar2 = *(int *)(pcVar31 + 0x229fc);\n    pppppiVar12 = ppppppiVar5[3];\n    do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(pcVar31 + 0x229fc);" (assignment_expression "iVar2 = *(int *)(pcVar31 + 0x229fc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar31 + 0x229fc)" (* "*") (cast_expression "(int *)(pcVar31 + 0x229fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x229fc)" (( "(") (binary_expression "pcVar31 + 0x229fc" (identifier "pcVar31") (+ "+") (number_literal "0x229fc")) () ")"))))) (; ";")) (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (do_statement "do {\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);" (do "do") (compound_statement "{\n      ppppiVar28 = pppppiVar12[0x29];\n      pppppiVar19 = (int *****)pppppiVar12[3];\n      if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }\n      pppppiVar12 = pppppiVar19;\n    }" ({ "{") (expression_statement "ppppiVar28 = pppppiVar12[0x29];" (assignment_expression "ppppiVar28 = pppppiVar12[0x29]" (identifier "ppppiVar28") (= "=") (subscript_expression "pppppiVar12[0x29]" (identifier "pppppiVar12") ([ "[") (number_literal "0x29") (] "]"))) (; ";")) (expression_statement "pppppiVar19 = (int *****)pppppiVar12[3];" (assignment_expression "pppppiVar19 = (int *****)pppppiVar12[3]" (identifier "pppppiVar19") (= "=") (cast_expression "(int *****)pppppiVar12[3]" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppiVar12[3]" (identifier "pppppiVar12") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (ppppiVar28 != (int ****)0xffffffff) {\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }" (if "if") (parenthesized_expression "(ppppiVar28 != (int ****)0xffffffff)" (( "(") (binary_expression "ppppiVar28 != (int ****)0xffffffff" (identifier "ppppiVar28") (!= "!=") (cast_expression "(int ****)0xffffffff" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));\n        ppppppiVar10 = pppppppiVar14[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        ppppppiVar21 = pppppppiVar16[iVar20];\n        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);\n        (*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);\n      }" ({ "{") (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c24)" (( "(") (binary_expression "pcVar31 + 0x22c24" (identifier "pcVar31") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(ppppiVar28)" (( "(") (identifier "ppppiVar28") () ")")))) (; ";")) (expression_statement "unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));" (assignment_expression "unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f))" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)(1 << ((uint)ppppiVar28 & 0x1f))" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(1 << ((uint)ppppiVar28 & 0x1f))" (( "(") (binary_expression "1 << ((uint)ppppiVar28 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((uint)ppppiVar28 & 0x1f)" (( "(") (binary_expression "(uint)ppppiVar28 & 0x1f" (cast_expression "(uint)ppppiVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppiVar28")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar14[iVar20];" (assignment_expression "ppppppiVar10 = pppppppiVar14[iVar20]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar14[iVar20]" (identifier "pppppppiVar14") ([ "[") (identifier "iVar20") (] "]"))) (; ";")) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c24)" (( "(") (binary_expression "pcVar31 + 0x22c24" (identifier "pcVar31") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(ppppiVar28)" (( "(") (identifier "ppppiVar28") () ")")))) (; ";")) (expression_statement "ppppppiVar21 = pppppppiVar16[iVar20];" (assignment_expression "ppppppiVar21 = pppppppiVar16[iVar20]" (identifier "ppppppiVar21") (= "=") (subscript_expression "pppppppiVar16[iVar20]" (identifier "pppppppiVar16") ([ "[") (identifier "iVar20") (] "]"))) (; ";")) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22c24))(ppppiVar28)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22c24))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22c24)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22c24)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c24)" (( "(") (binary_expression "pcVar31 + 0x22c24" (identifier "pcVar31") (+ "+") (number_literal "0x22c24")) () ")"))))) () ")")) (argument_list "(ppppiVar28)" (( "(") (identifier "ppppiVar28") () ")")))) (; ";")) (expression_statement "(*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);" (call_expression "(*(code *)(iVar2 + -0x7974))\n                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0)" (parenthesized_expression "(*(code *)(iVar2 + -0x7974))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x7974)" (* "*") (cast_expression "(code *)(iVar2 + -0x7974)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x7974)" (( "(") (binary_expression "iVar2 + -0x7974" (identifier "iVar2") (+ "+") (number_literal "-0x7974")) () ")")))) () ")")) (argument_list "(pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,\n                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,\n                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0)" (( "(") (identifier "pppppiVar12") (, ",") (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar10) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar10)" (( "(") (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar10" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (& "&") (cast_expression "(uint)ppppppiVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppiVar10"))) () ")")) (!= "!=") (number_literal "0")) (, ",") (binary_expression "((uint)unaff_s7 & (uint)ppppppiVar21) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)ppppppiVar21)" (( "(") (binary_expression "(uint)unaff_s7 & (uint)ppppppiVar21" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (& "&") (cast_expression "(uint)ppppppiVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppiVar21"))) () ")")) (!= "!=") (number_literal "0")) (, ",") (binary_expression "((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0" (parenthesized_expression "((uint)unaff_s7 & (uint)pppppppiVar17[iVar20])" (( "(") (binary_expression "(uint)unaff_s7 & (uint)pppppppiVar17[iVar20]" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (& "&") (cast_expression "(uint)pppppppiVar17[iVar20]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar17[iVar20]" (identifier "pppppppiVar17") ([ "[") (identifier "iVar20") (] "]")))) () ")")) (!= "!=") (number_literal "0")) () ")"))) (; ";")) (} "}"))) (expression_statement "pppppiVar12 = pppppiVar19;" (assignment_expression "pppppiVar12 = pppppiVar19" (identifier "pppppiVar12") (= "=") (identifier "pppppiVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppiVar19 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar19 != (int *****)0x0" (identifier "pppppiVar19") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (ppppppiVar5[0x42] != (int *****)0x0) {\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" (if "if") (parenthesized_expression "(ppppppiVar5[0x42] != (int *****)0x0)" (( "(") (binary_expression "ppppppiVar5[0x42] != (int *****)0x0" (subscript_expression "ppppppiVar5[0x42]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x42") (] "]")) (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    unaff_s7 = (int *******)0x1;\n    pppppiVar12 = ppppppiVar5[0x42];\n    do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);\n  }" ({ "{") (expression_statement "unaff_s7 = (int *******)0x1;" (assignment_expression "unaff_s7 = (int *******)0x1" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pppppiVar12 = ppppppiVar5[0x42];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x42]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[0x42]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x42") (] "]"))) (; ";")) (do_statement "do {\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    } while (pppppiVar19 != (int *****)0x0);" (do "do") (compound_statement "{\n      pppppiVar19 = (int *****)pppppiVar12[2];\n      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);\n      FUN_00018878(pppppiVar12);\n      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }\n      pppppiVar12 = pppppiVar19;\n    }" ({ "{") (expression_statement "pppppiVar19 = (int *****)pppppiVar12[2];" (assignment_expression "pppppiVar19 = (int *****)pppppiVar12[2]" (identifier "pppppiVar19") (= "=") (cast_expression "(int *****)pppppiVar12[2]" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppiVar12[2]" (identifier "pppppiVar12") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);" (call_expression "FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17)" (identifier "FUN_00018420") (argument_list "(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17)" (( "(") (identifier "pppppiVar12") (, ",") (identifier "pppppppiVar14") (, ",") (identifier "pppppppiVar16") (, ",") (identifier "pppppppiVar17") () ")"))) (; ";")) (expression_statement "FUN_00018878(pppppiVar12);" (call_expression "FUN_00018878(pppppiVar12)" (identifier "FUN_00018878") (argument_list "(pppppiVar12)" (( "(") (identifier "pppppiVar12") () ")"))) (; ";")) (if_statement "if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }" (if "if") (parenthesized_expression "((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0))" (( "(") (binary_expression "(((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)" (parenthesized_expression "(((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0))" (( "(") (binary_expression "((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&\n          (pppppiVar12[10] == (int ****)0x0)" (parenthesized_expression "((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0))" (( "(") (binary_expression "(pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)" (parenthesized_expression "(pppppiVar12[8] == (int ****)0x0)" (( "(") (binary_expression "pppppiVar12[8] == (int ****)0x0" (subscript_expression "pppppiVar12[8]" (identifier "pppppiVar12") ([ "[") (number_literal "8") (] "]")) (== "==") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppiVar12[9] == (int ****)0x0)" (( "(") (binary_expression "pppppiVar12[9] == (int ****)0x0" (subscript_expression "pppppiVar12[9]" (identifier "pppppiVar12") ([ "[") (number_literal "9") (] "]")) (== "==") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppiVar12[10] == (int ****)0x0)" (( "(") (binary_expression "pppppiVar12[10] == (int ****)0x0" (subscript_expression "pppppiVar12[10]" (identifier "pppppiVar12") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppiVar12[0xb] == (int ****)0x0)" (( "(") (binary_expression "pppppiVar12[0xb] == (int ****)0x0" (subscript_expression "pppppiVar12[0xb]" (identifier "pppppiVar12") ([ "[") (number_literal "0xb") (] "]")) (== "==") (cast_expression "(int ****)0x0" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        FUN_00014600(*pppppiVar12);\n        pcVar32 = *(code **)(pcVar31 + 0x22bb4);\n        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;\n        (*pcVar32)(*pppppiVar12);\n      }" ({ "{") (expression_statement "FUN_00014600(*pppppiVar12);" (call_expression "FUN_00014600(*pppppiVar12)" (identifier "FUN_00014600") (argument_list "(*pppppiVar12)" (( "(") (pointer_expression "*pppppiVar12" (* "*") (identifier "pppppiVar12")) () ")"))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22bb4);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22bb4)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22bb4)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22bb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22bb4)" (( "(") (binary_expression "pcVar31 + 0x22bb4" (identifier "pcVar31") (+ "+") (number_literal "0x22bb4")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((int)pppppiVar12 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)pppppiVar12 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)pppppiVar12 + 0x51)" (* "*") (cast_expression "(undefined1 *)((int)pppppiVar12 + 0x51)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppiVar12 + 0x51)" (( "(") (binary_expression "(int)pppppiVar12 + 0x51" (cast_expression "(int)pppppiVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppiVar12")) (+ "+") (number_literal "0x51")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "(*pcVar32)(*pppppiVar12);" (call_expression "(*pcVar32)(*pppppiVar12)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(*pppppiVar12)" (( "(") (pointer_expression "*pppppiVar12" (* "*") (identifier "pppppiVar12")) () ")"))) (; ";")) (} "}"))) (expression_statement "pppppiVar12 = pppppiVar19;" (assignment_expression "pppppiVar12 = pppppiVar19" (identifier "pppppiVar12") (= "=") (identifier "pppppiVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppiVar19 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar19 != (int *****)0x0" (identifier "pppppiVar19") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0001ab80(ppppppiVar5);" (call_expression "FUN_0001ab80(ppppppiVar5)" (identifier "FUN_0001ab80") (argument_list "(ppppppiVar5)" (( "(") (identifier "ppppppiVar5") () ")"))) (; ";")) (if_statement "if (iStack_41c == *piVar4) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(iStack_41c == *piVar4)" (( "(") (binary_expression "iStack_41c == *piVar4" (identifier "iStack_41c") (== "==") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar31 = *(code **)(pcVar31 + 0x22c30);" (assignment_expression "pcVar31 = *(code **)(pcVar31 + 0x22c30)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22c30)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22c30)" (( "(") (binary_expression "pcVar31 + 0x22c30" (identifier "pcVar31") (+ "+") (number_literal "0x22c30")) () ")"))))) (; ";")) (expression_statement "iVar2 = iStack_41c;" (assignment_expression "iVar2 = iStack_41c" (identifier "iVar2") (= "=") (identifier "iStack_41c")) (; ";")) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar30 = *(uint *)(iVar2 + 0xf8);" (assignment_expression "uVar30 = *(uint *)(iVar2 + 0xf8)" (identifier "uVar30") (= "=") (pointer_expression "*(uint *)(iVar2 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar2 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xf8)" (( "(") (binary_expression "iVar2 + 0xf8" (identifier "iVar2") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "uVar29 = uVar30 & 4;" (assignment_expression "uVar29 = uVar30 & 4" (identifier "uVar29") (= "=") (binary_expression "uVar30 & 4" (identifier "uVar30") (& "&") (number_literal "4"))) (; ";")) (expression_statement "pppppppiVar25 = (int *******)(uVar30 & 0x8000);" (assignment_expression "pppppppiVar25 = (int *******)(uVar30 & 0x8000)" (identifier "pppppppiVar25") (= "=") (cast_expression "(int *******)(uVar30 & 0x8000)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uVar30 & 0x8000)" (( "(") (binary_expression "uVar30 & 0x8000" (identifier "uVar30") (& "&") (number_literal "0x8000")) () ")")))) (; ";")) (expression_statement "uVar3 = uVar30;" (assignment_expression "uVar3 = uVar30" (identifier "uVar3") (= "=") (identifier "uVar30")) (; ";")) (if_statement "if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }" (if "if") (parenthesized_expression "(*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0)" (( "(") (binary_expression "*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0" (pointer_expression "*(undefined4 **)(iVar2 + 0x108)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x108)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x108)" (( "(") (binary_expression "iVar2 + 0x108" (identifier "iVar2") (+ "+") (number_literal "0x108")) () ")")))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    unaff_s7 = (int *******)0x1;\n    puVar9 = *(undefined4 **)(iVar2 + 0x108);\n    do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);\n    pppppppiVar14 = (int *******)0x0;\n    uVar3 = *(uint *)(iVar2 + 0xf8);\n  }" ({ "{") (expression_statement "unaff_s7 = (int *******)0x1;" (assignment_expression "unaff_s7 = (int *******)0x1" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar2 + 0x108);" (assignment_expression "puVar9 = *(undefined4 **)(iVar2 + 0x108)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar2 + 0x108)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x108)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x108)" (( "(") (binary_expression "iVar2 + 0x108" (identifier "iVar2") (+ "+") (number_literal "0x108")) () ")"))))) (; ";")) (do_statement "do {\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    } while (puVar22 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n      puVar22 = (undefined4 *)puVar9[2];\n      FUN_00018878(puVar9);\n      FUN_00014600(*puVar9);\n      *(undefined1 *)((int)puVar9 + 0x51) = 1;\n      (**(code **)(pcVar31 + 0x22818))(*puVar9);\n      puVar9 = puVar22;\n    }" ({ "{") (expression_statement "puVar22 = (undefined4 *)puVar9[2];" (assignment_expression "puVar22 = (undefined4 *)puVar9[2]" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)puVar9[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "FUN_00018878(puVar9);" (call_expression "FUN_00018878(puVar9)" (identifier "FUN_00018878") (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "FUN_00014600(*puVar9);" (call_expression "FUN_00014600(*puVar9)" (identifier "FUN_00014600") (argument_list "(*puVar9)" (( "(") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)puVar9 + 0x51) = 1;" (assignment_expression "*(undefined1 *)((int)puVar9 + 0x51) = 1" (pointer_expression "*(undefined1 *)((int)puVar9 + 0x51)" (* "*") (cast_expression "(undefined1 *)((int)puVar9 + 0x51)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 0x51)" (( "(") (binary_expression "(int)puVar9 + 0x51" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x51")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "(**(code **)(pcVar31 + 0x22818))(*puVar9);" (call_expression "(**(code **)(pcVar31 + 0x22818))(*puVar9)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22818))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22818)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22818)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22818)" (( "(") (binary_expression "pcVar31 + 0x22818" (identifier "pcVar31") (+ "+") (number_literal "0x22818")) () ")"))))) () ")")) (argument_list "(*puVar9)" (( "(") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")"))) (; ";")) (expression_statement "puVar9 = puVar22;" (assignment_expression "puVar9 = puVar22" (identifier "puVar9") (= "=") (identifier "puVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 != (undefined4 *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pppppppiVar14 = (int *******)0x0;" (assignment_expression "pppppppiVar14 = (int *******)0x0" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar3 = *(uint *)(iVar2 + 0xf8);" (assignment_expression "uVar3 = *(uint *)(iVar2 + 0xf8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar2 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar2 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xf8)" (( "(") (binary_expression "iVar2 + 0xf8" (identifier "iVar2") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((uVar3 & 0x2000) != 0) {\n    *(undefined1 *)(iVar2 + 0xe3) = 1;\n    FUN_00018028(iVar2);\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 + 0xe3) = 1;\n    FUN_00018028(iVar2);\n  }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xe3)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xe3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xe3)" (( "(") (binary_expression "iVar2 + 0xe3" (identifier "iVar2") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00018028(iVar2);" (call_expression "FUN_00018028(iVar2)" (identifier "FUN_00018028") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar23 = iVar2 + 0xac;" (assignment_expression "iVar23 = iVar2 + 0xac" (identifier "iVar23") (= "=") (binary_expression "iVar2 + 0xac" (identifier "iVar2") (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22884))(iVar23)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22884)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22884)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22884)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22884)" (( "(") (binary_expression "pcVar31 + 0x22884" (identifier "pcVar31") (+ "+") (number_literal "0x22884")) () ")"))))) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (expression_statement "uVar15 = 0x191e;" (assignment_expression "uVar15 = 0x191e" (identifier "uVar15") (= "=") (number_literal "0x191e")) (; ";")) (if_statement "if (iVar20 != 0) goto LAB_0001cf0c;" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001cf0c;" (goto "goto") (statement_identifier "LAB_0001cf0c") (; ";"))) (if_statement "if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;" (if "if") (parenthesized_expression "(pppppppiVar25 == (int *******)0x0)" (( "(") (binary_expression "pppppppiVar25 == (int *******)0x0" (identifier "pppppppiVar25") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cb94;" (goto "goto") (statement_identifier "LAB_0001cb94") (; ";"))) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0x14);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0x14)" (identifier "ppppppiVar5") (= "=") (pointer_expression "*(int *******)(iVar2 + 0x14)" (* "*") (cast_expression "(int *******)(iVar2 + 0x14)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x0" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cba0;" (goto "goto") (statement_identifier "LAB_0001cba0") (; ";"))) (expression_statement "pppppiVar12 = ppppppiVar5[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x38]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[0x38]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x38") (] "]"))) (; ";")) (expression_statement "uVar30 = uVar30 & 2;" (assignment_expression "uVar30 = uVar30 & 2" (identifier "uVar30") (= "=") (binary_expression "uVar30 & 2" (identifier "uVar30") (& "&") (number_literal "2"))) (; ";")) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;" (if "if") (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 == (int *****)0x0" (identifier "pppppiVar12") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cb6c;" (goto "goto") (statement_identifier "LAB_0001cb6c") (; ";"))) (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);" (assignment_expression "unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014)" (identifier "unaff_s7") (= "=") (cast_expression "(int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(pcVar31 + 0x22638) + -0x4014)" (( "(") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x4014" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x4014")) () ")")))) (; ";")) (labeled_statement "LAB_0001cb18:\n  if (uVar30 == 0) goto LAB_0001cd7c;" (statement_identifier "LAB_0001cb18") (: ":") (if_statement "if (uVar30 == 0) goto LAB_0001cd7c;" (if "if") (parenthesized_expression "(uVar30 == 0)" (( "(") (binary_expression "uVar30 == 0" (identifier "uVar30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001cd7c;" (goto "goto") (statement_identifier "LAB_0001cd7c") (; ";")))) (if_statement "if (uVar29 == 0) {\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }" (if "if") (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;\n    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;\n    goto LAB_0001cd9c;\n  }" ({ "{") (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;" (if "if") (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" (( "(") (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" (* "*") (cast_expression "(char *)(pppppiVar12 + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppiVar12 + 0x14)" (( "(") (binary_expression "pppppiVar12 + 0x14" (identifier "pppppiVar12") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001cdb0;" (goto "goto") (statement_identifier "LAB_0001cdb0") (; ";"))) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" (* "*") (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" (( "(") (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x38") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar14"))) (; ";")) (goto_statement "goto LAB_0001cd9c;" (goto "goto") (statement_identifier "LAB_0001cd9c") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" (if "if") (parenthesized_expression "(*(char *)((int)pppppiVar12 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)((int)pppppiVar12 + 0x51) == '\0'" (pointer_expression "*(char *)((int)pppppiVar12 + 0x51)" (* "*") (cast_expression "(char *)((int)pppppiVar12 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppiVar12 + 0x51)" (( "(") (binary_expression "(int)pppppiVar12 + 0x51" (cast_expression "(int)pppppiVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppiVar12")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);\n    goto LAB_0001cb54;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);" (call_expression "(**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22744))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22744)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22744)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22744)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22744)" (( "(") (binary_expression "pcVar31 + 0x22744" (identifier "pcVar31") (+ "+") (number_literal "0x22744")) () ")"))))) () ")")) (argument_list "(pppppiVar12[0xd],2)" (( "(") (subscript_expression "pppppiVar12[0xd]" (identifier "pppppiVar12") ([ "[") (number_literal "0xd") (] "]")) (, ",") (number_literal "2") () ")"))) (; ";")) (goto_statement "goto LAB_0001cb54;" (goto "goto") (statement_identifier "LAB_0001cb54") (; ";")) (} "}"))) (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;" (if "if") (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" (( "(") (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" (* "*") (cast_expression "(char *)(pppppiVar12 + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppiVar12 + 0x14)" (( "(") (binary_expression "pppppiVar12 + 0x14" (identifier "pppppiVar12") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001cdb0;" (goto "goto") (statement_identifier "LAB_0001cdb0") (; ";"))) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" (* "*") (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" (( "(") (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x38") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar14"))) (; ";")) (labeled_statement "LAB_0001cb4c:\n  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;" (statement_identifier "LAB_0001cb4c") (: ":") (expression_statement "*(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5 + 0x3f)" (* "*") (cast_expression "(char *)(ppppppiVar5 + 0x3f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar5 + 0x3f)" (( "(") (binary_expression "ppppppiVar5 + 0x3f" (identifier "ppppppiVar5") (+ "+") (number_literal "0x3f")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar14"))) (; ";"))) (expression_statement "*(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;" (assignment_expression "*(char *)(iVar2 + 0xe3) = (char)pppppppiVar14" (pointer_expression "*(char *)(iVar2 + 0xe3)" (* "*") (cast_expression "(char *)(iVar2 + 0xe3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xe3)" (( "(") (binary_expression "iVar2 + 0xe3" (identifier "iVar2") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar14"))) (; ";")) (labeled_statement "LAB_0001cb54:\n  ppppppiVar5 = (int ******)ppppppiVar5[3];" (statement_identifier "LAB_0001cb54") (: ":") (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" (identifier "ppppppiVar5") (= "=") (cast_expression "(int ******)ppppppiVar5[3]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (if_statement "if (ppppppiVar5 != (int ******)0x0) {\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }" (if "if") (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x0" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pppppiVar12 = ppppppiVar5[0x38];\n    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;\nLAB_0001cb6c:\n    uVar15 = 0x1929;\n    do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);\n  }" ({ "{") (expression_statement "pppppiVar12 = ppppppiVar5[0x38];" (assignment_expression "pppppiVar12 = ppppppiVar5[0x38]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[0x38]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x38") (] "]"))) (; ";")) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;" (if "if") (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 != (int *****)0x0" (identifier "pppppiVar12") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cb18;" (goto "goto") (statement_identifier "LAB_0001cb18") (; ";"))) (labeled_statement "LAB_0001cb6c:\n    uVar15 = 0x1929;" (statement_identifier "LAB_0001cb6c") (: ":") (expression_statement "uVar15 = 0x1929;" (assignment_expression "uVar15 = 0x1929" (identifier "uVar15") (= "=") (number_literal "0x1929")) (; ";"))) (do_statement "do {\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    } while (*(int *)(iVar2 + 0x10) != 0);" (do "do") (compound_statement "{\n      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);\nLAB_0001cb94:\n      uVar15 = 0x1948;\n    }" ({ "{") (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x2264c)" (( "(") (binary_expression "pcVar31 + 0x2264c" (identifier "pcVar31") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                 *(int *)(pcVar31 + 0x22638) + -0x33d0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22644)" (( "(") (binary_expression "pcVar31 + 0x22644" (identifier "pcVar31") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar15") (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x33d0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x33d0")) () ")"))) (; ";")) (labeled_statement "LAB_0001cb94:\n      uVar15 = 0x1948;" (statement_identifier "LAB_0001cb94") (: ":") (expression_statement "uVar15 = 0x1948;" (assignment_expression "uVar15 = 0x1948" (identifier "uVar15") (= "=") (number_literal "0x1948")) (; ";"))) (} "}")) (while "while") (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")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0001cba0:\n  ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (statement_identifier "LAB_0001cba0") (: ":") (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" (identifier "ppppppiVar5") (= "=") (pointer_expression "*(int *******)(iVar2 + 0xc)" (* "*") (cast_expression "(int *******)(iVar2 + 0xc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22918)" (( "(") (binary_expression "pcVar31 + 0x22918" (identifier "pcVar31") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (if_statement "if (ppppppiVar5 != (int ******)0x0) {\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }" (if "if") (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x0" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);\n    pcVar32 = *(code **)(pcVar31 + 0x22918);\n    ppppppiVar5 = (int ******)0x0;\n    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }\n  }" ({ "{") (do_statement "do {\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    } while (ppppppiVar5 != (int ******)0x0);" (do "do") (compound_statement "{\n      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);\n      ppppppiVar5 = (int ******)ppppppiVar5[3];\n    }" ({ "{") (expression_statement "(**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);" (call_expression "(**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22744))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22744)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22744)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22744)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22744)" (( "(") (binary_expression "pcVar31 + 0x22744" (identifier "pcVar31") (+ "+") (number_literal "0x22744")) () ")"))))) () ")")) (argument_list "(ppppppiVar5[0x29],2)" (( "(") (subscript_expression "ppppppiVar5[0x29]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x29") (] "]")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" (identifier "ppppppiVar5") (= "=") (cast_expression "(int ******)ppppppiVar5[3]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x0" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22918)" (( "(") (binary_expression "pcVar31 + 0x22918" (identifier "pcVar31") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (expression_statement "ppppppiVar5 = (int ******)0x0;" (assignment_expression "ppppppiVar5 = (int ******)0x0" (identifier "ppppppiVar5") (= "=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       ) {\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }" (if "if") (parenthesized_expression "((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)\n       )" (( "(") (binary_expression "(uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)" (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)" (( "(") (comma_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" (identifier "ppppppiVar5") (= "=") (pointer_expression "*(int *******)(iVar2 + 0xc)" (* "*") (cast_expression "(int *******)(iVar2 + 0xc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "ppppppiVar5 != (int ******)0x0" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      pppppppiVar14 = (int *******)0x1;\n      do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);\n    }" ({ "{") (expression_statement "pppppppiVar14 = (int *******)0x1;" (assignment_expression "pppppppiVar14 = (int *******)0x1" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)0x1" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (do_statement "do {\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      } while (ppppppiVar5 != (int ******)0x0);" (do "do") (compound_statement "{\n        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }\n        ppppppiVar5 = (int ******)ppppppiVar5[3];\n      }" ({ "{") (while_statement "while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')\n        {\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }" (while "while") (parenthesized_expression "(pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')" (( "(") (comma_expression "pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22918)" (( "(") (binary_expression "pcVar31 + 0x22918" (identifier "pcVar31") (+ "+") (number_literal "0x22918")) () ")"))))) (, ",") (binary_expression "*(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xaa)" (* "*") (cast_expression "(char *)((int)ppppppiVar5 + 0xaa)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" (( "(") (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar5")) (+ "+") (number_literal "0xaa")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n          iVar20 = (*pcVar32)(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }\n          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);\n          if (iVar20 != 0) goto LAB_0001cf30;\n          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);\n          if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }\n          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;\n          ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n          pcVar32 = *(code **)(pcVar31 + 0x22918);\n          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;\n        }" ({ "{") (expression_statement "iVar20 = (*pcVar32)(iVar23);" (assignment_expression "iVar20 = (*pcVar32)(iVar23)" (identifier "iVar20") (= "=") (call_expression "(*pcVar32)(iVar23)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) {\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar15 = 0x195e;\n            goto LAB_0001cd58;\n          }" ({ "{") (expression_statement "uVar15 = 0x195e;" (assignment_expression "uVar15 = 0x195e" (identifier "uVar15") (= "=") (number_literal "0x195e")) (; ";")) (goto_statement "goto LAB_0001cd58;" (goto "goto") (statement_identifier "LAB_0001cd58") (; ";")) (} "}"))) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2277c))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x2277c)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x2277c)" (* "*") (cast_expression "(code **)(pcVar31 + 0x2277c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x2277c)" (( "(") (binary_expression "pcVar31 + 0x2277c" (identifier "pcVar31") (+ "+") (number_literal "0x2277c")) () ")"))))) () ")")) (argument_list "(ppppppiVar5[0x16],0)" (( "(") (subscript_expression "ppppppiVar5[0x16]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x16") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) goto LAB_0001cf30;" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001cf30;" (goto "goto") (statement_identifier "LAB_0001cf30") (; ";"))) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22884))(iVar23)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22884)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22884)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22884)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22884)" (( "(") (binary_expression "pcVar31 + 0x22884" (identifier "pcVar31") (+ "+") (number_literal "0x22884")) () ")"))))) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) {\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar15 = 0x1961;\n            goto LAB_0001cf0c;\n          }" ({ "{") (expression_statement "uVar15 = 0x1961;" (assignment_expression "uVar15 = 0x1961" (identifier "uVar15") (= "=") (number_literal "0x1961")) (; ";")) (goto_statement "goto LAB_0001cf0c;" (goto "goto") (statement_identifier "LAB_0001cf0c") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1" (pointer_expression "*(undefined1 *)((int)ppppppiVar5 + 0xaa)" (* "*") (cast_expression "(undefined1 *)((int)ppppppiVar5 + 0xaa)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" (( "(") (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar5")) (+ "+") (number_literal "0xaa")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" (identifier "ppppppiVar5") (= "=") (pointer_expression "*(int *******)(iVar2 + 0xc)" (* "*") (cast_expression "(int *******)(iVar2 + 0xc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22918)" (( "(") (binary_expression "pcVar31 + 0x22918" (identifier "pcVar31") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (if_statement "if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x0" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cc48;" (goto "goto") (statement_identifier "LAB_0001cc48") (; ";"))) (} "}"))) (expression_statement "ppppppiVar5 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar5 = (int ******)ppppppiVar5[3]" (identifier "ppppppiVar5") (= "=") (cast_expression "(int ******)ppppppiVar5[3]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppiVar5 != (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 != (int ******)0x0" (identifier "ppppppiVar5") (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0001cc48:\n  iVar20 = (*pcVar32)(iVar23);" (statement_identifier "LAB_0001cc48") (: ":") (expression_statement "iVar20 = (*pcVar32)(iVar23);" (assignment_expression "iVar20 = (*pcVar32)(iVar23)" (identifier "iVar20") (= "=") (call_expression "(*pcVar32)(iVar23)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar23)" (( "(") (identifier "iVar23") () ")")))) (; ";"))) (if_statement "if (iVar20 == 0) {\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }\n  else {\n    uVar15 = 0x196b;\n  }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }\n    do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);\n    uVar15 = 0x11dd;\n  }" ({ "{") (if_statement "if (pppppppiVar25 != (int *******)0x0) {\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }" (if "if") (parenthesized_expression "(pppppppiVar25 != (int *******)0x0)" (( "(") (binary_expression "pppppppiVar25 != (int *******)0x0" (identifier "pppppppiVar25") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(undefined1 *)(iVar2 + 0xe3) = 1;\n      FUN_00018028(iVar2);\n    }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + 0xe3) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xe3) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xe3)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xe3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xe3)" (( "(") (binary_expression "iVar2 + 0xe3" (identifier "iVar2") (+ "+") (number_literal "0xe3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00018028(iVar2);" (call_expression "FUN_00018028(iVar2)" (identifier "FUN_00018028") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (do_statement "do {\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    } while (iVar20 == 0);" (do "do") (compound_statement "{\n      ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }\n      pppppppiVar25 = pppppppiVar14 + 0x2b;\n      FUN_00014148(ppppppiVar5,3);\n      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);\n      if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }\n      pppppiVar12 = ppppppiVar5[5];\n      ppppppiVar10 = (int ******)ppppppiVar5[4];\n      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }\n      pcVar32 = *(code **)(pcVar31 + 0x22918);\n      pppppppiVar14[6] = ppppppiVar5;\n      iVar20 = (*pcVar32)(pppppppiVar25);\n    }" ({ "{") (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" (identifier "ppppppiVar5") (= "=") (pointer_expression "*(int *******)(iVar2 + 0xc)" (* "*") (cast_expression "(int *******)(iVar2 + 0xc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (while_statement "while( true ) {\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }\n        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;\n        pppppppiVar14 = (int *******)ppppppiVar5[6];\n        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;\n        FUN_000140b4(ppppppiVar5);\n        ppppppiVar5 = *(int *******)(iVar2 + 0xc);\n      }" ({ "{") (if_statement "if (ppppppiVar5 == (int ******)0x0) {\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }" (if "if") (parenthesized_expression "(ppppppiVar5 == (int ******)0x0)" (( "(") (binary_expression "ppppppiVar5 == (int ******)0x0" (identifier "ppppppiVar5") (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar2 = FUN_0001ab80(iVar2);\n          return iVar2;\n        }" ({ "{") (expression_statement "iVar2 = FUN_0001ab80(iVar2);" (assignment_expression "iVar2 = FUN_0001ab80(iVar2)" (identifier "iVar2") (= "=") (call_expression "FUN_0001ab80(iVar2)" (identifier "FUN_0001ab80") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))\n        goto LAB_0001cf30;" (if "if") (parenthesized_expression "(((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))" (( "(") (binary_expression "((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0')" (parenthesized_expression "((*(uint *)(iVar2 + 0xf8) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(iVar2 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar2 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(iVar2 + 0xf8) & 4" (pointer_expression "*(uint *)(iVar2 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar2 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xf8)" (( "(") (binary_expression "iVar2 + 0xf8" (identifier "iVar2") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)ppppppiVar5 + 0xaa) == '\0')" (( "(") (binary_expression "*(char *)((int)ppppppiVar5 + 0xaa) == '\0'" (pointer_expression "*(char *)((int)ppppppiVar5 + 0xaa)" (* "*") (cast_expression "(char *)((int)ppppppiVar5 + 0xaa)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppiVar5 + 0xaa)" (( "(") (binary_expression "(int)ppppppiVar5 + 0xaa" (cast_expression "(int)ppppppiVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppiVar5")) (+ "+") (number_literal "0xaa")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0001cf30;" (goto "goto") (statement_identifier "LAB_0001cf30") (; ";"))) (expression_statement "pppppppiVar14 = (int *******)ppppppiVar5[6];" (assignment_expression "pppppppiVar14 = (int *******)ppppppiVar5[6]" (identifier "pppppppiVar14") (= "=") (cast_expression "(int *******)ppppppiVar5[6]" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "ppppppiVar5[6]" (identifier "ppppppiVar5") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;" (if "if") (parenthesized_expression "(((uint)pppppppiVar14[0x3e] & 4) == 0)" (( "(") (binary_expression "((uint)pppppppiVar14[0x3e] & 4) == 0" (parenthesized_expression "((uint)pppppppiVar14[0x3e] & 4)" (( "(") (binary_expression "(uint)pppppppiVar14[0x3e] & 4" (cast_expression "(uint)pppppppiVar14[0x3e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppiVar14[0x3e]" (identifier "pppppppiVar14") ([ "[") (number_literal "0x3e") (] "]"))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_000140b4(ppppppiVar5);" (call_expression "FUN_000140b4(ppppppiVar5)" (identifier "FUN_000140b4") (argument_list "(ppppppiVar5)" (( "(") (identifier "ppppppiVar5") () ")"))) (; ";")) (expression_statement "ppppppiVar5 = *(int *******)(iVar2 + 0xc);" (assignment_expression "ppppppiVar5 = *(int *******)(iVar2 + 0xc)" (identifier "ppppppiVar5") (= "=") (pointer_expression "*(int *******)(iVar2 + 0xc)" (* "*") (cast_expression "(int *******)(iVar2 + 0xc)" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pppppppiVar25 = pppppppiVar14 + 0x2b;" (assignment_expression "pppppppiVar25 = pppppppiVar14 + 0x2b" (identifier "pppppppiVar25") (= "=") (binary_expression "pppppppiVar14 + 0x2b" (identifier "pppppppiVar14") (+ "+") (number_literal "0x2b"))) (; ";")) (expression_statement "FUN_00014148(ppppppiVar5,3);" (call_expression "FUN_00014148(ppppppiVar5,3)" (identifier "FUN_00014148") (argument_list "(ppppppiVar5,3)" (( "(") (identifier "ppppppiVar5") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);" (assignment_expression "iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar31 + 0x22884))(pppppppiVar25)" (parenthesized_expression "(**(code **)(pcVar31 + 0x22884))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x22884)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x22884)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22884)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22884)" (( "(") (binary_expression "pcVar31 + 0x22884" (identifier "pcVar31") (+ "+") (number_literal "0x22884")) () ")"))))) () ")")) (argument_list "(pppppppiVar25)" (( "(") (identifier "pppppppiVar25") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) {\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        } while( true );" (do "do") (compound_statement "{\n          uVar15 = 0x11ca;\nLAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);\nLAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);\n        }" ({ "{") (expression_statement "uVar15 = 0x11ca;" (assignment_expression "uVar15 = 0x11ca" (identifier "uVar15") (= "=") (number_literal "0x11ca")) (; ";")) (labeled_statement "LAB_0001cf0c:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);" (statement_identifier "LAB_0001cf0c") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x2264c)" (( "(") (binary_expression "pcVar31 + 0x2264c" (identifier "pcVar31") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,\n                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22644)" (( "(") (binary_expression "pcVar31 + 0x22644" (identifier "pcVar31") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar15") (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x51e0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x51e0")) () ")"))) (; ";"))) (labeled_statement "LAB_0001cf30:\n          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);" (statement_identifier "LAB_0001cf30") (: ":") (expression_statement "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);" (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x2264c)" (( "(") (binary_expression "pcVar31 + 0x2264c" (identifier "pcVar31") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0)" (( "(") (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22644)" (( "(") (binary_expression "pcVar31 + 0x22644" (identifier "pcVar31") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pppppiVar12 = ppppppiVar5[5];" (assignment_expression "pppppiVar12 = ppppppiVar5[5]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[5]" (identifier "ppppppiVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[4];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[4]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[4]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[4]" (identifier "ppppppiVar5") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }\n      else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" (if "if") (parenthesized_expression "((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c])" (( "(") (binary_expression "(int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]" (cast_expression "(int ******)ppppppiVar5[0x26]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[0x26]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x26") (] "]"))) (== "==") (subscript_expression "pppppppiVar14[0x3c]" (identifier "pppppppiVar14") ([ "[") (number_literal "0x3c") (] "]"))) () ")")) (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;\n        pppppppiVar14[0xd] = ppppppiVar10;\nLAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;\nLAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;\nLAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;\nLAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;\n      }" ({ "{") (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" (if "if") (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 == (int *****)0x0" (identifier "pppppiVar12") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppiVar14[0xc] = ppppppiVar10;\n        }" ({ "{") (expression_statement "pppppppiVar14[0xc] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xc] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xc]" (identifier "pppppppiVar14") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppiVar10")) (; ";")) (} "}")) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" (else "else") (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" ({ "{") (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[4]" (identifier "pppppiVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar10" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar10"))) (; ";")) (} "}")))) (expression_statement "pppppiVar12 = ppppppiVar5[4];" (assignment_expression "pppppiVar12 = ppppppiVar5[4]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[4]" (identifier "ppppppiVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[5];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[5]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[5]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[5]" (identifier "ppppppiVar5") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;" (if "if") (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 != (int *****)0x0" (identifier "pppppiVar12") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001ccf0;" (goto "goto") (statement_identifier "LAB_0001ccf0") (; ";"))) (expression_statement "pppppppiVar14[0xd] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xd] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xd]" (identifier "pppppppiVar14") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "ppppppiVar10")) (; ";")) (labeled_statement "LAB_0001ccf4:\n        pppppiVar12 = ppppppiVar5[3];" (statement_identifier "LAB_0001ccf4") (: ":") (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[2];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[2]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[2]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "ppppppiVar5[4] = (int *****)0x0;" (assignment_expression "ppppppiVar5[4] = (int *****)0x0" (subscript_expression "ppppppiVar5[4]" (identifier "ppppppiVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar5[5] = (int *****)0x0;" (assignment_expression "ppppppiVar5[5] = (int *****)0x0" (subscript_expression "ppppppiVar5[5]" (identifier "ppppppiVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;" (if "if") (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 != (int *****)0x0" (identifier "pppppiVar12") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cd08;" (goto "goto") (statement_identifier "LAB_0001cd08") (; ";"))) (labeled_statement "LAB_0001cdfc:\n        pppppppiVar14[2] = ppppppiVar10;" (statement_identifier "LAB_0001cdfc") (: ":") (expression_statement "pppppppiVar14[2] = ppppppiVar10;" (assignment_expression "pppppppiVar14[2] = ppppppiVar10" (subscript_expression "pppppppiVar14[2]" (identifier "pppppppiVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppppiVar10")) (; ";"))) (expression_statement "pppppiVar12 = ppppppiVar5[2];" (assignment_expression "pppppiVar12 = ppppppiVar5[2]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[3]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[3]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;" (if "if") (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 == (int *****)0x0" (identifier "pppppiVar12") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001ce0c;" (goto "goto") (statement_identifier "LAB_0001ce0c") (; ";"))) (labeled_statement "LAB_0001cd18:\n        pppppiVar12[3] = (int ****)ppppppiVar10;" (statement_identifier "LAB_0001cd18") (: ":") (expression_statement "pppppiVar12[3] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[3] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[3]" (identifier "pppppiVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar10" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar10"))) (; ";"))) (expression_statement "ppppppiVar5[2] = (int *****)0x0;" (assignment_expression "ppppppiVar5[2] = (int *****)0x0" (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar5[3] = (int *****)0x0;" (assignment_expression "ppppppiVar5[3] = (int *****)0x0" (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar14[6];" (assignment_expression "ppppppiVar10 = pppppppiVar14[6]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar14[6]" (identifier "pppppppiVar14") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppppiVar5[2] = (int *****)ppppppiVar10;" (assignment_expression "ppppppiVar5[2] = (int *****)ppppppiVar10" (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *****)ppppppiVar10" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar10"))) (; ";")) (if_statement "if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;" (if "if") (parenthesized_expression "(pppppppiVar14[7] != (int ******)0x0)" (( "(") (binary_expression "pppppppiVar14[7] != (int ******)0x0" (subscript_expression "pppppppiVar14[7]" (identifier "pppppppiVar14") ([ "[") (number_literal "7") (] "]")) (!= "!=") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cd38;" (goto "goto") (statement_identifier "LAB_0001cd38") (; ";"))) (labeled_statement "LAB_0001ce2c:\n        pppppppiVar14[7] = ppppppiVar5;" (statement_identifier "LAB_0001ce2c") (: ":") (expression_statement "pppppppiVar14[7] = ppppppiVar5;" (assignment_expression "pppppppiVar14[7] = ppppppiVar5" (subscript_expression "pppppppiVar14[7]" (identifier "pppppppiVar14") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppiVar5")) (; ";"))) (} "}")) (else_clause "else {\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" (else "else") (compound_statement "{\n        if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }\n        pppppiVar12 = ppppppiVar5[4];\n        ppppppiVar10 = (int ******)ppppppiVar5[5];\n        if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }\n        pppppppiVar14[0xf] = ppppppiVar10;\n        ppppppiVar5[4] = (int *****)0x0;\n        ppppppiVar5[5] = (int *****)0x0;\n        pppppiVar12 = ppppppiVar5[3];\n        ppppppiVar10 = (int ******)ppppppiVar5[2];\n        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;\nLAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;\n        pppppiVar12 = ppppppiVar5[2];\n        ppppppiVar10 = (int ******)ppppppiVar5[3];\n        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;\nLAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;\n        ppppppiVar5[2] = (int *****)0x0;\n        ppppppiVar5[3] = (int *****)0x0;\n        ppppppiVar10 = pppppppiVar14[6];\n        ppppppiVar5[2] = (int *****)ppppppiVar10;\n        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;\nLAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;\n      }" ({ "{") (if_statement "if (pppppiVar12 == (int *****)0x0) {\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }\n        else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" (if "if") (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 == (int *****)0x0" (identifier "pppppiVar12") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppiVar14[0xe] = ppppppiVar10;\n        }" ({ "{") (expression_statement "pppppppiVar14[0xe] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xe] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xe]" (identifier "pppppppiVar14") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "ppppppiVar10")) (; ";")) (} "}")) (else_clause "else {\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" (else "else") (compound_statement "{\n          pppppiVar12[4] = (int ****)ppppppiVar10;\n        }" ({ "{") (expression_statement "pppppiVar12[4] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[4] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[4]" (identifier "pppppiVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar10" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar10"))) (; ";")) (} "}")))) (expression_statement "pppppiVar12 = ppppppiVar5[4];" (assignment_expression "pppppiVar12 = ppppppiVar5[4]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[4]" (identifier "ppppppiVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[5];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[5]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[5]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[5]" (identifier "ppppppiVar5") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (pppppiVar12 != (int *****)0x0) {\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }" (if "if") (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 != (int *****)0x0" (identifier "pppppiVar12") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;\n          goto LAB_0001ccf4;\n        }" ({ "{") (labeled_statement "LAB_0001ccf0:\n          pppppiVar12[5] = (int ****)ppppppiVar10;" (statement_identifier "LAB_0001ccf0") (: ":") (expression_statement "pppppiVar12[5] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[5] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[5]" (identifier "pppppiVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar10" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar10"))) (; ";"))) (goto_statement "goto LAB_0001ccf4;" (goto "goto") (statement_identifier "LAB_0001ccf4") (; ";")) (} "}"))) (expression_statement "pppppppiVar14[0xf] = ppppppiVar10;" (assignment_expression "pppppppiVar14[0xf] = ppppppiVar10" (subscript_expression "pppppppiVar14[0xf]" (identifier "pppppppiVar14") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "ppppppiVar10")) (; ";")) (expression_statement "ppppppiVar5[4] = (int *****)0x0;" (assignment_expression "ppppppiVar5[4] = (int *****)0x0" (subscript_expression "ppppppiVar5[4]" (identifier "ppppppiVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar5[5] = (int *****)0x0;" (assignment_expression "ppppppiVar5[5] = (int *****)0x0" (subscript_expression "ppppppiVar5[5]" (identifier "ppppppiVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppiVar12 = ppppppiVar5[3];" (assignment_expression "pppppiVar12 = ppppppiVar5[3]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[2];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[2]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[2]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;" (if "if") (parenthesized_expression "(pppppiVar12 == (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 == (int *****)0x0" (identifier "pppppiVar12") (== "==") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cdfc;" (goto "goto") (statement_identifier "LAB_0001cdfc") (; ";"))) (labeled_statement "LAB_0001cd08:\n        pppppiVar12[2] = (int ****)ppppppiVar10;" (statement_identifier "LAB_0001cd08") (: ":") (expression_statement "pppppiVar12[2] = (int ****)ppppppiVar10;" (assignment_expression "pppppiVar12[2] = (int ****)ppppppiVar10" (subscript_expression "pppppiVar12[2]" (identifier "pppppiVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int ****)ppppppiVar10" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "ppppppiVar10"))) (; ";"))) (expression_statement "pppppiVar12 = ppppppiVar5[2];" (assignment_expression "pppppiVar12 = ppppppiVar5[2]" (identifier "pppppiVar12") (= "=") (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppppiVar10 = (int ******)ppppppiVar5[3];" (assignment_expression "ppppppiVar10 = (int ******)ppppppiVar5[3]" (identifier "ppppppiVar10") (= "=") (cast_expression "(int ******)ppppppiVar5[3]" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;" (if "if") (parenthesized_expression "(pppppiVar12 != (int *****)0x0)" (( "(") (binary_expression "pppppiVar12 != (int *****)0x0" (identifier "pppppiVar12") (!= "!=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001cd18;" (goto "goto") (statement_identifier "LAB_0001cd18") (; ";"))) (labeled_statement "LAB_0001ce0c:\n        pppppppiVar14[3] = ppppppiVar10;" (statement_identifier "LAB_0001ce0c") (: ":") (expression_statement "pppppppiVar14[3] = ppppppiVar10;" (assignment_expression "pppppppiVar14[3] = ppppppiVar10" (subscript_expression "pppppppiVar14[3]" (identifier "pppppppiVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "ppppppiVar10")) (; ";"))) (expression_statement "ppppppiVar5[2] = (int *****)0x0;" (assignment_expression "ppppppiVar5[2] = (int *****)0x0" (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar5[3] = (int *****)0x0;" (assignment_expression "ppppppiVar5[3] = (int *****)0x0" (subscript_expression "ppppppiVar5[3]" (identifier "ppppppiVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int *****)0x0" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppiVar10 = pppppppiVar14[6];" (assignment_expression "ppppppiVar10 = pppppppiVar14[6]" (identifier "ppppppiVar10") (= "=") (subscript_expression "pppppppiVar14[6]" (identifier "pppppppiVar14") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppppppiVar5[2] = (int *****)ppppppiVar10;" (assignment_expression "ppppppiVar5[2] = (int *****)ppppppiVar10" (subscript_expression "ppppppiVar5[2]" (identifier "ppppppiVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *****)ppppppiVar10" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar10"))) (; ";")) (if_statement "if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;" (if "if") (parenthesized_expression "(pppppppiVar14[7] == (int ******)0x0)" (( "(") (binary_expression "pppppppiVar14[7] == (int ******)0x0" (subscript_expression "pppppppiVar14[7]" (identifier "pppppppiVar14") ([ "[") (number_literal "7") (] "]")) (== "==") (cast_expression "(int ******)0x0" (( "(") (type_descriptor "int ******" (primitive_type "int") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001ce2c;" (goto "goto") (statement_identifier "LAB_0001ce2c") (; ";"))) (labeled_statement "LAB_0001cd38:\n        ppppppiVar10[3] = (int *****)ppppppiVar5;" (statement_identifier "LAB_0001cd38") (: ":") (expression_statement "ppppppiVar10[3] = (int *****)ppppppiVar5;" (assignment_expression "ppppppiVar10[3] = (int *****)ppppppiVar5" (subscript_expression "ppppppiVar10[3]" (identifier "ppppppiVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int *****)ppppppiVar5" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppiVar5"))) (; ";"))) (} "}")))) (expression_statement "pcVar32 = *(code **)(pcVar31 + 0x22918);" (assignment_expression "pcVar32 = *(code **)(pcVar31 + 0x22918)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar31 + 0x22918)" (* "*") (cast_expression "(code **)(pcVar31 + 0x22918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22918)" (( "(") (binary_expression "pcVar31 + 0x22918" (identifier "pcVar31") (+ "+") (number_literal "0x22918")) () ")"))))) (; ";")) (expression_statement "pppppppiVar14[6] = ppppppiVar5;" (assignment_expression "pppppppiVar14[6] = ppppppiVar5" (subscript_expression "pppppppiVar14[6]" (identifier "pppppppiVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "ppppppiVar5")) (; ";")) (expression_statement "iVar20 = (*pcVar32)(pppppppiVar25);" (assignment_expression "iVar20 = (*pcVar32)(pppppppiVar25)" (identifier "iVar20") (= "=") (call_expression "(*pcVar32)(pppppppiVar25)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(pppppppiVar25)" (( "(") (identifier "pppppppiVar25") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar15 = 0x11dd;" (assignment_expression "uVar15 = 0x11dd" (identifier "uVar15") (= "=") (number_literal "0x11dd")) (; ";")) (} "}")) (else_clause "else {\n    uVar15 = 0x196b;\n  }" (else "else") (compound_statement "{\n    uVar15 = 0x196b;\n  }" ({ "{") (expression_statement "uVar15 = 0x196b;" (assignment_expression "uVar15 = 0x196b" (identifier "uVar15") (= "=") (number_literal "0x196b")) (; ";")) (} "}")))) (labeled_statement "LAB_0001cd58:\n  pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);" (statement_identifier "LAB_0001cd58") (: ":") (expression_statement "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8);" (assignment_expression "pppppiVar12 = (int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" (identifier "pppppiVar12") (= "=") (cast_expression "(int *****)\n                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" (( "(") (type_descriptor "int *****" (primitive_type "int") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (call_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))\n                          (**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" (parenthesized_expression "(*(code *)**(undefined4 **)(pcVar31 + 0x2264c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(code *)**(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x2264c)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x2264c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x2264c)" (( "(") (binary_expression "pcVar31 + 0x2264c" (identifier "pcVar31") (+ "+") (number_literal "0x2264c")) () ")"))))))) () ")")) (argument_list "(**(undefined4 **)(pcVar31 + 0x22644),\n                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,\n                           *(int *)(pcVar31 + 0x22638) + -0x51b8)" (( "(") (pointer_expression "**(undefined4 **)(pcVar31 + 0x22644)" (* "*") (pointer_expression "*(undefined4 **)(pcVar31 + 0x22644)" (* "*") (cast_expression "(undefined4 **)(pcVar31 + 0x22644)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x22644)" (( "(") (binary_expression "pcVar31 + 0x22644" (identifier "pcVar31") (+ "+") (number_literal "0x22644")) () ")"))))) (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x40a0" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar15") (, ",") (binary_expression "*(int *)(pcVar31 + 0x22638) + -0x51b8" (pointer_expression "*(int *)(pcVar31 + 0x22638)" (* "*") (cast_expression "(int *)(pcVar31 + 0x22638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar31 + 0x22638)" (( "(") (binary_expression "pcVar31 + 0x22638" (identifier "pcVar31") (+ "+") (number_literal "0x22638")) () ")")))) (+ "+") (number_literal "-0x51b8")) () ")"))))) (; ";"))) (labeled_statement "LAB_0001cd7c:\n  if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" (statement_identifier "LAB_0001cd7c") (: ":") (if_statement "if (*(char *)(pppppiVar12 + 0x14) == '\0') {\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" (if "if") (parenthesized_expression "(*(char *)(pppppiVar12 + 0x14) == '\0')" (( "(") (binary_expression "*(char *)(pppppiVar12 + 0x14) == '\0'" (pointer_expression "*(char *)(pppppiVar12 + 0x14)" (* "*") (cast_expression "(char *)(pppppiVar12 + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppiVar12 + 0x14)" (( "(") (binary_expression "pppppiVar12 + 0x14" (identifier "pppppiVar12") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);\n  }" ({ "{") (labeled_statement "LAB_0001cdb0:\n    FUN_00020df0(iVar2,unaff_s7);" (statement_identifier "LAB_0001cdb0") (: ":") (expression_statement "FUN_00020df0(iVar2,unaff_s7);" (call_expression "FUN_00020df0(iVar2,unaff_s7)" (identifier "FUN_00020df0") (argument_list "(iVar2,unaff_s7)" (( "(") (identifier "iVar2") (, ",") (identifier "unaff_s7") () ")"))) (; ";"))) (} "}")))) (expression_statement "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;" (assignment_expression "*(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14" (pointer_expression "*(char *)(ppppppiVar5[0x38] + 0x14)" (* "*") (cast_expression "(char *)(ppppppiVar5[0x38] + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppiVar5[0x38] + 0x14)" (( "(") (binary_expression "ppppppiVar5[0x38] + 0x14" (subscript_expression "ppppppiVar5[0x38]" (identifier "ppppppiVar5") ([ "[") (number_literal "0x38") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(char)pppppppiVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppppiVar14"))) (; ";")) (if_statement "if (uVar29 == 0) {\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }" (if "if") (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);\n  }" ({ "{") (labeled_statement "LAB_0001cd9c:\n    FUN_00014600(ppppppiVar5);" (statement_identifier "LAB_0001cd9c") (: ":") (expression_statement "FUN_00014600(ppppppiVar5);" (call_expression "FUN_00014600(ppppppiVar5)" (identifier "FUN_00014600") (argument_list "(ppppppiVar5)" (( "(") (identifier "ppppppiVar5") () ")"))) (; ";"))) (} "}"))) (goto_statement "goto LAB_0001cb4c;" (goto "goto") (statement_identifier "LAB_0001cb4c") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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 (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))))) (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))) (return_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (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: (identifier) right: (number_literal))))) right: (identifier)))))) (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))) (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: (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)))) 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: (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: (identifier) right: (number_literal))))) right: (identifier)))))) (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: (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: (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)))) alternative: (else_clause (compound_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)))) (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))))))))))) (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)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (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 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: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (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 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: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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: (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: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) (while_statement condition: (parenthesized_expression (true)) body: (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 (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 (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 (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) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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))))) (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: (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))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (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)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier) right: (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))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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)) (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))))) (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: (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: (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)) (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (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))))) (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: (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: (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: (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))) (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: (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: (primitive_type) 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)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)))))) (return_statement (identifier)))))) (return_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)) (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))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (identifier))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (goto_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (goto_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (pointer_expression argument: (identifier)))))) (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (identifier))) (goto_statement label: (statement_identifier)))) (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 (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (goto_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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (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: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (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: (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)))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (labeled_statement label: (statement_identifier) (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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)))))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))))))) (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))))) (expression_statement (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (number_literal)) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (number_literal)) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier))) (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))))) (labeled_statement label: (statement_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: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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 (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (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: (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))))) 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)))))) (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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 (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (number_literal)))) (do_statement 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence))))) body: (compound_statement (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 (subscript_expression argument: (identifier) index: (number_literal)) (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: (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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (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)))))) (do_statement 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (identifier)))) (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 (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)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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 (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))))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

int MASKED(int *param_1)

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int *piVar4;
  int ******ppppppiVar5;
  undefined4 uVar6;
  int *******pppppppiVar7;
  int *******pppppppiVar8;
  undefined4 *puVar9;
  int ******ppppppiVar10;
  int *******pppppppiVar11;
  int *****pppppiVar12;
  int iVar13;
  int *******pppppppiVar14;
  undefined4 uVar15;
  int *******pppppppiVar16;
  int *******pppppppiVar17;
  int *******pppppppiVar18;
  int *****pppppiVar19;
  int iVar20;
  int ******ppppppiVar21;
  undefined4 *puVar22;
  int iVar23;
  int *******pppppppiVar24;
  int *******pppppppiVar25;
  int *******pppppppiVar26;
  int ******ppppppiVar27;
  int ****ppppiVar28;
  uint uVar29;
  int *******unaff_s6;
  uint uVar30;
  int *******unaff_s7;
  code *pcVar31;
  code *pcVar32;
  undefined1 auStack_428 [12];
  int iStack_41c;
  int *******pppppppiStack_418;
  int ******ppppppiStack_414;
  int *******pppppppiStack_410;
  undefined4 uStack_40c;
  int *******pppppppiStack_408;
  int ******ppppppiStack_404;
  int *******pppppppiStack_400;
  int *******pppppppiStack_3fc;
  int *******pppppppiStack_3f8;
  code *pcStack_3f4;
  int *******pppppppiStack_3e0;
  undefined4 uStack_3dc;
  code *pcStack_3d8;
  int *piStack_3cc;
  int *******pppppppiStack_3c8;
  int *******pppppppiStack_3c4;
  int iStack_3c0;
  int ******ppppppiStack_3bc;
  int *******pppppppiStack_3b8;
  undefined4 uStack_3b4;
  int ******ppppppiStack_3b0;
  undefined4 uStack_3ac;
  int ******ppppppiStack_3a4;
  undefined4 uStack_3a0;
  int ******appppppiStack_39c [32];
  int ******appppppiStack_31c [32];
  int ******appppppiStack_29c [32];
  int ******appppppiStack_21c [32];
  int ******appppppiStack_19c [32];
  int ******appppppiStack_11c [32];
  int ******ppppppiStack_9c;
  int iStack_98;
  int iStack_94;
  int iStack_90;
  
  iVar20 = param_1[6];
  iVar23 = iVar20 + 0xac;
  iVar2 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar23);
  puVar1 = PTR_pthread_mutex_unlock_0003f33c;
  if (iVar2 != 0) {
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0xa83,
               PTR_DAT_0003f05c + -0x51e0);
    goto LAB_0001b988;
  }
  if (*(char *)(param_1 + 0x3f) != '\0') {
    *(undefined1 *)(param_1 + 0x3f) = 0;
    iVar2 = (*(code *)puVar1)(iVar23);
    uVar15 = 0xa8a;
    if (iVar2 != 0) goto LAB_0001b8ac;
    return 0;
  }
  if ((*(uint *)(iVar20 + 0xf8) & 4) == 0) {
    iVar2 = param_1[5];
    iVar13 = param_1[4];
    if (param_1[0x26] == *(int *)(iVar20 + 0xf0)) {
      if (iVar2 == 0) {
        *(int *)(iVar20 + 0x30) = iVar13;
      }
      else {
        *(int *)(iVar2 + 0x10) = iVar13;
      }
      iVar2 = param_1[4];
      iVar13 = param_1[5];
      if (iVar2 != 0) goto LAB_0001b770;
      *(int *)(iVar20 + 0x34) = iVar13;
      param_1[4] = 0;
      param_1[5] = 0;
    }
    else {
      if (iVar2 == 0) {
        *(int *)(iVar20 + 0x38) = iVar13;
      }
      else {
        *(int *)(iVar2 + 0x10) = iVar13;
      }
      iVar2 = param_1[4];
      iVar13 = param_1[5];
      if (iVar2 == 0) {
        *(int *)(iVar20 + 0x3c) = iVar13;
        param_1[4] = 0;
        param_1[5] = 0;
      }
      else {
LAB_0001b770:
        *(int *)(iVar2 + 0x14) = iVar13;
        param_1[4] = 0;
        param_1[5] = 0;
      }
    }
  }
  if (param_1[3] == 0) {
    *(int *)(iVar20 + 8) = param_1[2];
    iVar2 = param_1[2];
    iVar13 = param_1[3];
    if (iVar2 == 0) goto LAB_0001b86c;
LAB_0001b798:
    *(int *)(iVar2 + 0xc) = iVar13;
    param_1[2] = 0;
    param_1[3] = 0;
    iVar2 = *(int *)(iVar20 + 0x10);
    param_1[2] = iVar2;
    if (*(int *)(iVar20 + 0x14) != 0) goto LAB_0001b7b8;
LAB_0001b88c:
    *(int **)(iVar20 + 0x14) = param_1;
  }
  else {
    *(int *)(param_1[3] + 8) = param_1[2];
    iVar2 = param_1[2];
    iVar13 = param_1[3];
    if (iVar2 != 0) goto LAB_0001b798;
LAB_0001b86c:
    *(int *)(iVar20 + 0xc) = iVar13;
    param_1[2] = 0;
    param_1[3] = 0;
    iVar2 = *(int *)(iVar20 + 0x10);
    param_1[2] = iVar2;
    if (*(int *)(iVar20 + 0x14) == 0) goto LAB_0001b88c;
LAB_0001b7b8:
    *(int **)(iVar2 + 0xc) = param_1;
  }
  *(int **)(iVar20 + 0x10) = param_1;
  *(undefined1 *)((int)param_1 + 0xf5) = 1;
  if ((*(uint *)(iVar20 + 0xf8) & 0x200) != 0) {
    uVar3 = param_1[0x2c];
    if ((uVar3 & 4) != 0) {
      if ((int *)param_1[1] == (int *)0x0) {
        *(int *)(iVar20 + 0x20) = *param_1;
      }
      else {
        *(int *)param_1[1] = *param_1;
      }
      if (*param_1 == 0) {
        *(int *)(iVar20 + 0x24) = param_1[1];
      }
      else {
        *(int *)(*param_1 + 4) = param_1[1];
      }
      *param_1 = 0;
      param_1[1] = 0;
      uVar3 = param_1[0x2c] & 0xfffffffb;
      param_1[0x2c] = uVar3;
    }
    if ((uVar3 & 8) != 0) goto LAB_0001b8d0;
    param_1[0x2c] = uVar3 | 0x10;
  }
  while( true ) {
    iVar2 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar23);
    if (iVar2 == 0) {
      return 0;
    }
LAB_0001b988:
    uVar15 = 0xab8;
LAB_0001b8ac:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar15,
               PTR_DAT_0003f05c + -0x51b8);
LAB_0001b8d0:
    iVar2 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(iVar20 + 0xcc),2,param_1[0x29],0);
    if (iVar2 != 0) break;
    param_1[0x2c] = param_1[0x2c] & 0xfffffff7U | 0x10;
  }
  iVar2 = *(int *)PTR_DAT_0003f068;
  pcVar31 = *(code **)PTR_DAT_0003f070;
  (*pcVar31)(iVar2,PTR_DAT_0003f05c + -0x40a0,0xab1,PTR_DAT_0003f05c + -0x4f40);
  if ((*(uint *)(*(int *)(iVar2 + 0x18) + 0xf8) & 0x2000) != 0) {
    if (*(int *)(iVar2 + 0xe0) != 0) {
      iVar2 = FUN_00020df0(*(int *)(iVar2 + 0x18),*(int *)(pcVar31 + 0x236a4) + -0x3554);
      return iVar2;
    }
    iVar2 = MASKED();
    return iVar2;
  }
  iVar2 = **(int **)(pcVar31 + 0x236b0);
  pcVar32 = (code *)**(undefined4 **)(pcVar31 + 0x236b8);
  (*pcVar32)(iVar2,*(int *)(pcVar31 + 0x236a4) + -0x40a0,0xae2,*(int *)(pcVar31 + 0x236a4) + -0x359c
            );
  iVar13 = *(int *)(iVar2 + 0x18);
  if ((*(uint *)(iVar13 + 0xf8) & 0x2000) == 0) {
    (*(code *)**(undefined4 **)(pcVar32 + 0x23638))
              (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xaff,
               *(int *)(pcVar32 + 0x23624) + -0x3514);
    iVar2 = iVar20;
  }
  else {
    iVar23 = iVar13 + 0xac;
    iVar20 = (**(code **)(pcVar32 + 0x23870))(iVar23);
    if (iVar20 != 0) goto LAB_0001bb7c;
    pcVar31 = *(code **)(pcVar32 + 0x23904);
    *(undefined1 *)(iVar2 + 0xfc) = 1;
    *(undefined1 *)(iVar13 + 0xe3) = 1;
    iVar20 = (*pcVar31)(iVar23);
    if (iVar20 == 0) {
      iVar2 = -1;
      if ((*(int *)(iVar13 + 0xdc) != -1) &&
         (iVar2 = (**(code **)(pcVar32 + 0x237e8))
                            (*(int *)(iVar13 + 0xdc),*(int *)(pcVar32 + 0x23624) + -0x28d8,8),
         iVar2 < 1)) {
        piVar4 = (int *)(**(code **)(pcVar32 + 0x237cc))();
        iVar2 = *piVar4;
        if (iVar2 != 0xb) {
          iVar2 = FUN_00020df0(iVar13,*(int *)(pcVar32 + 0x23624) + -0x34cc);
          return iVar2;
        }
      }
      return iVar2;
    }
  }
  (*(code *)**(undefined4 **)(pcVar32 + 0x23638))
            (**(undefined4 **)(pcVar32 + 0x23630),*(int *)(pcVar32 + 0x23624) + -0x40a0,0xb06,
             *(int *)(pcVar32 + 0x23624) + -0x51b8);
LAB_0001bb7c:
  pppppppiVar11 = (int *******)**(undefined4 **)(pcVar32 + 0x23630);
  pppppppiVar17 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x51e0);
  pcVar31 = (code *)**(undefined4 **)(pcVar32 + 0x23638);
  pppppppiVar14 = (int *******)(*(int *)(pcVar32 + 0x23624) + -0x40a0);
  (*pcVar31)(pppppppiVar11,pppppppiVar14,0xb01);
  pcStack_3d8 = pcVar31 + 0x2b48c;
  piStack_3cc = *(int **)(pcVar31 + 0x23748);
  ppppppiVar27 = (int ******)&ppppppiStack_3a4;
  uVar15 = 0x8000001f;
  ppppppiVar21 = pppppppiVar11[6];
  ppppppiStack_9c = (int ******)*piStack_3cc;
  pppppppiVar24 = (int *******)((uint)ppppppiVar21[0x3e] & 0x40);
  iStack_98 = iVar13;
  iStack_94 = iVar2;
  iStack_90 = iVar23;
  ppppppiVar5 = (int ******)(**(code **)(pcVar31 + 0x23740))();
  ppppppiVar10 = pppppppiVar11[0x2d];
  pppppppiVar11[0x17] = ppppppiVar5;
  pppppppiVar26 = (int *******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7974);
  pppppppiVar25 = (int *******)0x0;
LAB_0001bc2c:
  pppppppiVar18 = (int *******)(uint)*(byte *)(ppppppiVar21 + 0x38);
  if (pppppppiVar18 != (int *******)0x0) {
joined_r0x0001bdcc:
    if (ppppppiVar10 != (int ******)0x13) {
      pppppppiVar14 = (int *******)0x3;
      if (*(char *)(ppppppiVar21 + 0x38) == '\0') {
        pppppppiVar14 = (int *******)0x1;
      }
      FUN_00014148(pppppppiVar11);
    }
LAB_0001bdfc:
    FUN_00015e38(pppppppiVar11);
LAB_0001bcc4:
    if (pppppppiVar11[9] != (int ******)0x0) {
      (**(code **)(pcStack_3d8 + -0x7d58))();
      pppppppiVar11[9] = (int ******)0x0;
    }
    if (pppppppiVar11[0x29] != (int ******)0xffffffff) {
      pppppppiVar14 = (int *******)0x1;
      (**(code **)(pcStack_3d8 + -0x7ec8))();
    }
    pppppppiVar16 = (int *******)0x8;
    if (ppppppiVar21[0x37] != (int *****)0xffffffff) {
      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x28d8);
      iVar2 = (**(code **)(pcStack_3d8 + -0x7e10))();
      if ((iVar2 < 1) && (piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))(), *piVar4 != 0xb)) {
        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x341c);
        FUN_00020df0(ppppppiVar21);
      }
    }
    goto LAB_0001bd0c;
  }
  if (ppppppiVar10 == (int ******)0x13) goto LAB_0001bdfc;
  unaff_s6 = (int *******)(uint)*(byte *)((int)pppppppiVar11 + 0xf5);
  unaff_s7 = (int *******)ppppppiVar21[0x3c];
  if ((unaff_s6 != (int *******)0x0) && (pppppppiVar11[0x38] == (int ******)0x0)) {
    ppppppiVar5 = (int ******)ppppppiVar21[0x37];
    pppppppiVar25 = unaff_s6;
    if (pppppppiVar24 == (int *******)0x0) {
      pppppppiStack_3c8 = appppppiStack_39c;
      pppppppiVar14 = pppppppiStack_3c8;
      do {
        *pppppppiVar14 = (int ******)0x0;
        pppppppiVar14 = pppppppiVar14 + 1;
      } while (pppppppiVar14 != appppppiStack_31c);
      pppppppiVar17 = (int *******)0x400;
      iVar2 = FUN_00022130(ppppppiVar5,pppppppiStack_3c8,0);
      if (iVar2 == 0) goto LAB_0001c364;
      pppppppiVar17 = (int *******)0x0;
      pppppppiStack_3e0 = (int *******)0x0;
      pppppppiVar14 = pppppppiStack_3c8;
      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiVar21[0x37] + 1,pppppppiStack_3c8,0);
      if (-1 < iVar2) goto LAB_0001c380;
      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      pppppppiVar16 = (int *******)*puVar9;
      if (pppppppiVar16 == (int *******)0x4) goto LAB_0001c13c;
      pppppppiVar25 = (int *******)pppppppiVar11[6];
      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);
      pppppppiVar18 = pppppppiVar16;
      pppppppiVar24 = pppppppiVar25;
LAB_0001c18c:
      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);
      FUN_00020df0(pppppppiVar25,pppppppiVar14,pppppppiVar16);
      ppppppiVar10 = pppppppiVar11[0x2d];
      goto joined_r0x0001bdcc;
    }
    pppppppiVar14 = (int *******)0x1;
    uStack_3a0 = 0x10000;
    ppppppiStack_3a4 = ppppppiVar5;
    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,0xffffffff);
    if (iVar2 < 0) {
      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      if (*piVar4 != 4) {
LAB_0001bd98:
        pppppppiVar18 = (int *******)pppppppiVar11[6];
        uVar6 = (**(code **)(pcStack_3d8 + -0x7ddc))();
        pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);
        FUN_00020df0(pppppppiVar18,pppppppiVar14,uVar6);
        ppppppiVar10 = pppppppiVar11[0x2d];
        goto joined_r0x0001bdcc;
      }
LAB_0001c13c:
      ppppppiVar10 = pppppppiVar11[0x2d];
    }
    else {
LAB_0001c380:
      pppppppiVar14 = &ppppppiStack_3b0;
      (**(code **)(pcStack_3d8 + -0x7d18))(ppppppiVar21[0x37],pppppppiVar14,8);
      ppppppiVar10 = pppppppiVar11[0x2d];
    }
    goto LAB_0001bc2c;
  }
  if (pppppppiVar25 != (int *******)0x0) {
    FUN_0001478c(pppppppiVar11);
    FUN_00015e38(pppppppiVar11);
  }
  ppppppiVar5 = pppppppiVar11[0x2e];
  pppppppiVar25 = (int *******)0x0;
  if ((ppppppiVar5 != (int ******)0x2) &&
     ((*(char *)(pppppppiVar11 + 0x3d) == '\0' || (ppppppiVar5 != (int ******)0x0)))) {
    if (0 < (int)unaff_s7) {
      iVar2 = FUN_0002186c();
      if ((int)unaff_s7 < iVar2 - (int)pppppppiVar11[0x25]) {
        unaff_s7 = (int *******)0x0;
      }
      else {
        unaff_s7 = (int *******)((int)unaff_s7 - (iVar2 - (int)pppppppiVar11[0x25]));
      }
      ppppppiVar5 = pppppppiVar11[0x2e];
      pppppppiStack_3b8 = unaff_s7;
      goto LAB_0001bc90;
    }
    pppppppiVar16 = (int *******)0x0;
    if (pppppppiVar24 == (int *******)0x0) goto LAB_0001be20;
LAB_0001bc98:
    ppppppiStack_3a4 = pppppppiVar11[0x29];
    uStack_3a0 = 0;
    if (ppppppiVar5 == (int ******)0x1) {
      uStack_3a0 = 0x60000;
    }
    else if (ppppppiVar5 == (int ******)0x0) {
      uStack_3a0 = 0x30000;
    }
    else if (ppppppiVar5 == (int ******)0x2) {
      uStack_3a0 = 0x20000;
    }
    else if (ppppppiVar5 == (int ******)0x3) goto LAB_0001bcc4;
    if (pppppppiVar16 == (int *******)0x0) {
      iVar2 = -1;
    }
    else {
      iVar2 = (int)pppppppiStack_3b8 * 1000;
    }
    pppppppiVar14 = (int *******)0x1;
    iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(ppppppiVar27,1,iVar2);
    if (iVar2 < 0) {
      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      if (*piVar4 != 4) goto LAB_0001bd98;
LAB_0001c1b0:
      ppppppiVar10 = pppppppiVar11[0x2d];
    }
    else {
      pppppppiVar16 = (int *******)((uStack_3a0 << 0x1d) >> 0x1f);
      pppppppiVar17 = (int *******)(uint)((uStack_3a0 & 0xba) != 0);
      pppppppiVar14 = (int *******)((int)uStack_3a0._2_2_ & 1);
      iVar2 = FUN_0001868c(pppppppiVar11);
      if (iVar2 == 0) goto LAB_0001bcc4;
      ppppppiVar10 = pppppppiVar11[0x2d];
      if (ppppppiVar10 == (int ******)0x14) goto LAB_0001c01c;
    }
    goto LAB_0001bc2c;
  }
  pppppppiStack_3b8 = (int *******)0x0;
LAB_0001bc90:
  uStack_3b4 = 0;
  pppppppiVar16 = (int *******)&pppppppiStack_3b8;
  if (pppppppiVar24 != (int *******)0x0) goto LAB_0001bc98;
LAB_0001be20:
  unaff_s6 = appppppiStack_31c;
  pppppppiVar7 = appppppiStack_39c;
  do {
    *pppppppiVar7 = (int ******)0x0;
    pppppppiVar7 = pppppppiVar7 + 1;
  } while (unaff_s6 != pppppppiVar7);
  unaff_s7 = appppppiStack_29c;
  pppppppiVar7 = unaff_s6;
  do {
    *pppppppiVar7 = (int ******)0x0;
    pppppppiVar7 = pppppppiVar7 + 1;
    pppppppiVar8 = unaff_s7;
  } while (unaff_s7 != pppppppiVar7);
  do {
    *pppppppiVar8 = (int ******)0x0;
    pppppppiVar8 = pppppppiVar8 + 1;
  } while (appppppiStack_21c != pppppppiVar8);
  iStack_3c0 = -1;
  if (ppppppiVar5 != (int ******)0x1) {
    if (ppppppiVar5 == (int ******)0x0) {
      pppppppiVar17 = (int *******)0x400;
      pppppppiStack_3c8 = appppppiStack_39c;
      pppppppiStack_3c4 = pppppppiVar16;
      iVar2 = FUN_00022130(pppppppiVar11[0x29],appppppiStack_39c,&iStack_3c0);
      if (iVar2 != 0) {
        iVar2 = iStack_3c0 + 1;
        pppppppiVar7 = pppppppiStack_3c8;
        pppppppiVar16 = pppppppiStack_3c4;
        goto LAB_0001be8c;
      }
LAB_0001c364:
      pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x348c);
      FUN_00020df0(pppppppiVar11[6]);
    }
    else {
      if (ppppppiVar5 == (int ******)0x2) {
        pppppppiVar17 = (int *******)0x400;
        pppppppiStack_3c8 = pppppppiVar16;
        pppppppiStack_3c4 = appppppiStack_39c;
        iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s7,&iStack_3c0);
        if (iVar2 != 0) goto LAB_0001c1ec;
        goto LAB_0001c364;
      }
      iVar2 = 0;
      pppppppiVar7 = appppppiStack_39c;
      if (ppppppiVar5 != (int ******)0x3) goto LAB_0001be8c;
    }
    goto LAB_0001bcc4;
  }
  pppppppiVar17 = (int *******)0x400;
  pppppppiStack_3c8 = pppppppiVar16;
  pppppppiStack_3c4 = appppppiStack_39c;
  iVar2 = FUN_00022130(pppppppiVar11[0x29],unaff_s6,&iStack_3c0);
  if (iVar2 == 0) goto LAB_0001c364;
LAB_0001c1ec:
  iVar2 = iStack_3c0 + 1;
  pppppppiVar7 = pppppppiStack_3c4;
  pppppppiVar16 = pppppppiStack_3c8;
LAB_0001be8c:
  pppppppiVar14 = pppppppiVar7;
  pppppppiVar17 = unaff_s7;
  pppppppiStack_3e0 = pppppppiVar16;
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))(iVar2,pppppppiVar14,unaff_s6);
  if (iVar2 < 0) {
    puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();
    pppppppiVar16 = (int *******)*puVar9;
    unaff_s6 = pppppppiVar16;
    if (pppppppiVar16 != (int *******)0x4) {
      pppppppiVar25 = (int *******)pppppppiVar11[6];
      pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar16);
      pppppppiVar18 = pppppppiVar25;
      goto LAB_0001c18c;
    }
    goto LAB_0001c1b0;
  }
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))(pppppppiVar11[0x29]);
  unaff_s6 = (int *******)
             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_39c[iVar2]) != 0)
  ;
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();
  unaff_s7 = (int *******)
             (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_31c[iVar2]) != 0)
  ;
  iVar2 = (**(code **)(pcStack_3d8 + -0x7d84))();
  pppppppiVar17 =
       (int *******)
       (uint)((1 << ((uint)pppppppiVar11[0x29] & 0x1f) & (uint)appppppiStack_29c[iVar2]) != 0);
  pppppppiVar14 = unaff_s6;
  pppppppiVar16 = unaff_s7;
  iVar2 = FUN_0001868c(pppppppiVar11);
  if (iVar2 == 0) goto LAB_0001bcc4;
  ppppppiVar10 = pppppppiVar11[0x2d];
  if (ppppppiVar10 != (int ******)0x14) goto LAB_0001bc2c;
LAB_0001c01c:
  if ((ppppppiVar21[0x12] != (int *****)0x0) &&
     (pppppppiVar17 = (int *******)0x0, *(char *)(pppppppiVar11 + 0x28) != '\0')) {
    pppppppiVar16 = pppppppiVar11 + 0xb;
    pppppppiVar14 = pppppppiVar11;
    (*(code *)ppppppiVar21[0x12])(ppppppiVar21[0x13]);
  }
  *(undefined1 *)(pppppppiVar11 + 0x28) = 0;
  unaff_s6 = (int *******)pppppppiVar11[0x38];
  if (((uint)pppppppiVar11[6][0x3e] & 0x42) == 2) {
    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);
    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7e20);
    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fac) + -0x7be0);
    do {
      while( true ) {
        unaff_s7 = appppppiStack_21c;
        pppppppiVar25 = unaff_s7;
        if ((((unaff_s6[8] == (int ******)0x0) &&
             (pppppppiVar26 = appppppiStack_19c, unaff_s6[9] == (int ******)0x0)) &&
            (unaff_s6[10] == (int ******)0x0)) && (unaff_s6[0xb] == (int ******)0x0))
        goto LAB_0001c074;
        do {
          pppppppiVar26 = appppppiStack_19c;
          *pppppppiVar25 = (int ******)0x0;
          pppppppiVar25 = pppppppiVar25 + 1;
          pppppppiVar18 = appppppiStack_11c;
          pppppppiVar14 = pppppppiVar26;
        } while (pppppppiVar26 != pppppppiVar25);
        do {
          *pppppppiVar14 = (int ******)0x0;
          pppppppiVar14 = pppppppiVar14 + 1;
          pppppppiVar25 = pppppppiVar18;
        } while (pppppppiVar18 != pppppppiVar14);
        do {
          *pppppppiVar25 = (int ******)0x0;
          pppppppiVar25 = pppppppiVar25 + 1;
          ppppppiVar27 = (int ******)0xffffffff;
        } while (pppppppiVar25 != &ppppppiStack_9c);
        uStack_3dc = 0x400;
        pppppppiStack_3e0 = &ppppppiStack_3bc;
        ppppppiStack_3bc = (int ******)0xffffffff;
        pppppppiVar16 = pppppppiVar26;
        pppppppiVar17 = pppppppiVar18;
        iVar2 = FUN_00017e20(unaff_s6,unaff_s7);
        if (iVar2 == 0) {
          pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3434);
          FUN_00020df0(pppppppiVar11[6]);
          goto LAB_0001c074;
        }
        if (ppppppiStack_3bc != (int ******)0xffffffff) break;
LAB_0001c4bc:
        pppppppiVar17 = pppppppiVar18;
        FUN_00018420(unaff_s6);
        FUN_00018878(unaff_s6);
        pppppppiVar14 = unaff_s7;
        pppppppiVar16 = pppppppiVar26;
      }
      pppppppiStack_3e0 = (int *******)0x0;
      if ((*(char *)(pppppppiVar11 + 0x3d) != '\0') &&
         (pppppppiStack_3e0 = (int *******)0x0, unaff_s6[10] < unaff_s6[8])) {
        pppppppiStack_3e0 = &ppppppiStack_3b0;
        ppppppiStack_3b0 = (int ******)0x0;
        uStack_3ac = 0;
      }
      pppppppiVar14 = unaff_s7;
      pppppppiVar16 = pppppppiVar26;
      pppppppiVar17 = pppppppiVar18;
      iVar2 = (**(code **)(pcStack_3d8 + -0x7d6c))((int)ppppppiStack_3bc + 1);
      if (-1 < iVar2) goto LAB_0001c4bc;
      puVar9 = (undefined4 *)(**(code **)(pcStack_3d8 + -0x7e2c))();
      pppppppiVar18 = (int *******)*puVar9;
    } while (pppppppiVar18 == (int *******)0x4);
    ppppppiVar21 = pppppppiVar11[6];
    pppppppiVar17 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))(pppppppiVar18);
    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3470);
    pppppppiVar16 = pppppppiVar18;
    FUN_00020df0(ppppppiVar21);
  }
  else if (((uint)pppppppiVar11[6][0x3e] & 2) != 0) {
    pppppppiVar14 = appppppiStack_11c;
    appppppiStack_11c[1] = (int ******)0x0;
    pppppppiVar24 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7b40);
    appppppiStack_11c[3] = (int ******)0x0;
    ppppppiVar21 = (int ******)(*(int *)(pcStack_3d8 + -0x7fd8) + 0x7c40);
    uVar15 = *(undefined4 *)(pcStack_3d8 + -0x7fac);
    appppppiStack_11c[0] = (int ******)(*unaff_s6)[0x29];
    appppppiStack_11c[2] = unaff_s6[0x10];
    do {
      while( true ) {
        if (((unaff_s6[8] == (int ******)0x0) && (unaff_s6[9] == (int ******)0x0)) &&
           ((unaff_s6[10] == (int ******)0x0 &&
            (pppppppiVar18 = pppppppiVar14, unaff_s6[0xb] == (int ******)0x0)))) goto LAB_0001c074;
        FUN_00017b40(unaff_s6);
        if (*(char *)(pppppppiVar11 + 0x3d) == '\0') {
          pppppppiVar16 = (int *******)0xffffffff;
        }
        else {
          pppppppiVar16 = (int *******)((unaff_s6[10] < unaff_s6[8]) - 1);
        }
        iVar2 = (**(code **)(pcStack_3d8 + -0x7dac))(pppppppiVar14,2);
        if (iVar2 < 0) break;
        FUN_00017c40(unaff_s6,pppppppiVar14);
        FUN_00018878();
      }
      piVar4 = (int *)(**(code **)(pcStack_3d8 + -0x7e2c))();
    } while (*piVar4 == 4);
    pppppppiVar18 = (int *******)pppppppiVar11[6];
    pppppppiVar16 = (int *******)(**(code **)(pcStack_3d8 + -0x7ddc))();
    pppppppiVar14 = (int *******)(*(int *)(pcStack_3d8 + -0x7fd4) + -0x3450);
    FUN_00020df0(pppppppiVar18);
  }
LAB_0001c074:
  FUN_00014600(pppppppiVar11);
  pcVar31 = *(code **)(pcStack_3d8 + -0x7df4);
  *(undefined1 *)((int)pppppppiVar11[0x38] + 0x51) = 1;
  (*pcVar31)(pppppppiVar11);
LAB_0001bd0c:
  if (ppppppiStack_9c == (int ******)*piStack_3cc) {
    return 0;
  }
  pcVar31 = *(code **)(pcStack_3d8 + -0x7d78);
  pcVar32 = FUN_0001c688;
  ppppppiVar5 = ppppppiStack_9c;
  (*pcVar31)();
  piVar4 = *(int **)(pcVar31 + 0x22c64);
  iStack_41c = *piVar4;
  *(undefined1 *)(ppppppiVar5 + 0x39) = 0;
  pppppppiStack_418 = pppppppiVar18;
  ppppppiStack_414 = ppppppiVar21;
  pppppppiStack_410 = pppppppiVar24;
  uStack_40c = uVar15;
  pppppppiStack_408 = pppppppiVar26;
  ppppppiStack_404 = ppppppiVar27;
  pppppppiStack_400 = unaff_s6;
  pppppppiStack_3fc = unaff_s7;
  pppppppiStack_3f8 = pppppppiVar11;
  pcStack_3f4 = pcVar32;
  if (ppppppiVar5[0x37] != (int *****)0xffffffff) {
    iVar2 = (**(code **)(pcVar31 + 0x22c24))();
    pppppiVar12 = ppppppiVar5[0x37];
    if ((int)pppppiVar12 < 0) {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
      pcVar32 = *(code **)(pcVar31 + 0x22c90);
    }
    else {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
      pcVar32 = *(code **)(pcVar31 + 0x22c90);
    }
    if (uVar3 != 0) {
      (*pcVar32)(pppppiVar12,auStack_428,8);
    }
  }
  pppppiVar12 = ppppppiVar5[0x31];
  if ((pppppiVar12 != (int *****)0xffffffff) && (*(char *)((int)ppppppiVar5 + 0xe1) == '\0')) {
    iVar2 = (**(code **)(pcVar31 + 0x22c24))(pppppiVar12);
    if ((int)pppppiVar12 < 0) {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
    }
    else {
      uVar3 = 1 << ((uint)pppppiVar12 & 0x1f) & (uint)pppppppiVar14[iVar2];
    }
    if (uVar3 != 0) {
      FUN_0001afec(ppppppiVar5);
    }
  }
  if ((((uint)ppppppiVar5[0x3e] & 4) == 0) && (ppppppiVar5[3] != (int *****)0x0)) {
    iVar2 = *(int *)(pcVar31 + 0x229fc);
    pppppiVar12 = ppppppiVar5[3];
    do {
      ppppiVar28 = pppppiVar12[0x29];
      pppppiVar19 = (int *****)pppppiVar12[3];
      if (ppppiVar28 != (int ****)0xffffffff) {
        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);
        unaff_s7 = (int *******)(1 << ((uint)ppppiVar28 & 0x1f));
        ppppppiVar10 = pppppppiVar14[iVar20];
        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);
        ppppppiVar21 = pppppppiVar16[iVar20];
        iVar20 = (**(code **)(pcVar31 + 0x22c24))(ppppiVar28);
        (*(code *)(iVar2 + -0x7974))
                  (pppppiVar12,((uint)unaff_s7 & (uint)ppppppiVar10) != 0,
                   ((uint)unaff_s7 & (uint)ppppppiVar21) != 0,
                   ((uint)unaff_s7 & (uint)pppppppiVar17[iVar20]) != 0);
      }
      pppppiVar12 = pppppiVar19;
    } while (pppppiVar19 != (int *****)0x0);
  }
  if (ppppppiVar5[0x42] != (int *****)0x0) {
    unaff_s7 = (int *******)0x1;
    pppppiVar12 = ppppppiVar5[0x42];
    do {
      pppppiVar19 = (int *****)pppppiVar12[2];
      FUN_00018420(pppppiVar12,pppppppiVar14,pppppppiVar16,pppppppiVar17);
      FUN_00018878(pppppiVar12);
      if ((((pppppiVar12[8] == (int ****)0x0) && (pppppiVar12[9] == (int ****)0x0)) &&
          (pppppiVar12[10] == (int ****)0x0)) && (pppppiVar12[0xb] == (int ****)0x0)) {
        FUN_00014600(*pppppiVar12);
        pcVar32 = *(code **)(pcVar31 + 0x22bb4);
        *(undefined1 *)((int)pppppiVar12 + 0x51) = 1;
        (*pcVar32)(*pppppiVar12);
      }
      pppppiVar12 = pppppiVar19;
    } while (pppppiVar19 != (int *****)0x0);
  }
  FUN_0001ab80(ppppppiVar5);
  if (iStack_41c == *piVar4) {
    return 1;
  }
  pcVar31 = *(code **)(pcVar31 + 0x22c30);
  iVar2 = iStack_41c;
  (*pcVar31)();
  uVar30 = *(uint *)(iVar2 + 0xf8);
  uVar29 = uVar30 & 4;
  pppppppiVar25 = (int *******)(uVar30 & 0x8000);
  uVar3 = uVar30;
  if (*(undefined4 **)(iVar2 + 0x108) != (undefined4 *)0x0) {
    unaff_s7 = (int *******)0x1;
    puVar9 = *(undefined4 **)(iVar2 + 0x108);
    do {
      puVar22 = (undefined4 *)puVar9[2];
      FUN_00018878(puVar9);
      FUN_00014600(*puVar9);
      *(undefined1 *)((int)puVar9 + 0x51) = 1;
      (**(code **)(pcVar31 + 0x22818))(*puVar9);
      puVar9 = puVar22;
    } while (puVar22 != (undefined4 *)0x0);
    pppppppiVar14 = (int *******)0x0;
    uVar3 = *(uint *)(iVar2 + 0xf8);
  }
  if ((uVar3 & 0x2000) != 0) {
    *(undefined1 *)(iVar2 + 0xe3) = 1;
    FUN_00018028(iVar2);
  }
  iVar23 = iVar2 + 0xac;
  iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);
  uVar15 = 0x191e;
  if (iVar20 != 0) goto LAB_0001cf0c;
  if (pppppppiVar25 == (int *******)0x0) goto LAB_0001cb94;
  ppppppiVar5 = *(int *******)(iVar2 + 0x14);
  if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cba0;
  pppppiVar12 = ppppppiVar5[0x38];
  uVar30 = uVar30 & 2;
  if (pppppiVar12 == (int *****)0x0) goto LAB_0001cb6c;
  pppppppiVar14 = (int *******)0x1;
  unaff_s7 = (int *******)(*(int *)(pcVar31 + 0x22638) + -0x4014);
LAB_0001cb18:
  if (uVar30 == 0) goto LAB_0001cd7c;
  if (uVar29 == 0) {
    if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
    *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;
    goto LAB_0001cd9c;
  }
  if (*(char *)((int)pppppiVar12 + 0x51) == '\0') {
    (**(code **)(pcVar31 + 0x22744))(pppppiVar12[0xd],2);
    goto LAB_0001cb54;
  }
  if (*(char *)(pppppiVar12 + 0x14) == '\0') goto LAB_0001cdb0;
  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;
LAB_0001cb4c:
  *(char *)(ppppppiVar5 + 0x3f) = (char)pppppppiVar14;
  *(char *)(iVar2 + 0xe3) = (char)pppppppiVar14;
LAB_0001cb54:
  ppppppiVar5 = (int ******)ppppppiVar5[3];
  if (ppppppiVar5 != (int ******)0x0) {
    pppppiVar12 = ppppppiVar5[0x38];
    if (pppppiVar12 != (int *****)0x0) goto LAB_0001cb18;
LAB_0001cb6c:
    uVar15 = 0x1929;
    do {
      (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,
                 *(int *)(pcVar31 + 0x22638) + -0x33d0);
LAB_0001cb94:
      uVar15 = 0x1948;
    } while (*(int *)(iVar2 + 0x10) != 0);
  }
LAB_0001cba0:
  ppppppiVar5 = *(int *******)(iVar2 + 0xc);
  pcVar32 = *(code **)(pcVar31 + 0x22918);
  if (ppppppiVar5 != (int ******)0x0) {
    do {
      (**(code **)(pcVar31 + 0x22744))(ppppppiVar5[0x29],2);
      ppppppiVar5 = (int ******)ppppppiVar5[3];
    } while (ppppppiVar5 != (int ******)0x0);
    pcVar32 = *(code **)(pcVar31 + 0x22918);
    ppppppiVar5 = (int ******)0x0;
    if ((uVar29 != 0) && (ppppppiVar5 = *(int *******)(iVar2 + 0xc), ppppppiVar5 != (int ******)0x0)
       ) {
      pppppppiVar14 = (int *******)0x1;
      do {
        while (pcVar32 = *(code **)(pcVar31 + 0x22918), *(char *)((int)ppppppiVar5 + 0xaa) == '\0')
        {
          iVar20 = (*pcVar32)(iVar23);
          if (iVar20 != 0) {
            uVar15 = 0x195e;
            goto LAB_0001cd58;
          }
          iVar20 = (**(code **)(pcVar31 + 0x2277c))(ppppppiVar5[0x16],0);
          if (iVar20 != 0) goto LAB_0001cf30;
          iVar20 = (**(code **)(pcVar31 + 0x22884))(iVar23);
          if (iVar20 != 0) {
            uVar15 = 0x1961;
            goto LAB_0001cf0c;
          }
          *(undefined1 *)((int)ppppppiVar5 + 0xaa) = 1;
          ppppppiVar5 = *(int *******)(iVar2 + 0xc);
          pcVar32 = *(code **)(pcVar31 + 0x22918);
          if (ppppppiVar5 == (int ******)0x0) goto LAB_0001cc48;
        }
        ppppppiVar5 = (int ******)ppppppiVar5[3];
      } while (ppppppiVar5 != (int ******)0x0);
    }
  }
LAB_0001cc48:
  iVar20 = (*pcVar32)(iVar23);
  if (iVar20 == 0) {
    if (pppppppiVar25 != (int *******)0x0) {
      *(undefined1 *)(iVar2 + 0xe3) = 1;
      FUN_00018028(iVar2);
    }
    do {
      ppppppiVar5 = *(int *******)(iVar2 + 0xc);
      while( true ) {
        if (ppppppiVar5 == (int ******)0x0) {
          iVar2 = FUN_0001ab80(iVar2);
          return iVar2;
        }
        if (((*(uint *)(iVar2 + 0xf8) & 4) != 0) && (*(char *)((int)ppppppiVar5 + 0xaa) == '\0'))
        goto LAB_0001cf30;
        pppppppiVar14 = (int *******)ppppppiVar5[6];
        if (((uint)pppppppiVar14[0x3e] & 4) == 0) break;
        FUN_000140b4(ppppppiVar5);
        ppppppiVar5 = *(int *******)(iVar2 + 0xc);
      }
      pppppppiVar25 = pppppppiVar14 + 0x2b;
      FUN_00014148(ppppppiVar5,3);
      iVar20 = (**(code **)(pcVar31 + 0x22884))(pppppppiVar25);
      if (iVar20 != 0) {
        do {
          uVar15 = 0x11ca;
LAB_0001cf0c:
          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0,
                     uVar15,*(int *)(pcVar31 + 0x22638) + -0x51e0);
LAB_0001cf30:
          (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                    (**(undefined4 **)(pcVar31 + 0x22644),*(int *)(pcVar31 + 0x22638) + -0x40a0);
        } while( true );
      }
      pppppiVar12 = ppppppiVar5[5];
      ppppppiVar10 = (int ******)ppppppiVar5[4];
      if ((int ******)ppppppiVar5[0x26] == pppppppiVar14[0x3c]) {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar14[0xc] = ppppppiVar10;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar10;
        }
        pppppiVar12 = ppppppiVar5[4];
        ppppppiVar10 = (int ******)ppppppiVar5[5];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001ccf0;
        pppppppiVar14[0xd] = ppppppiVar10;
LAB_0001ccf4:
        pppppiVar12 = ppppppiVar5[3];
        ppppppiVar10 = (int ******)ppppppiVar5[2];
        ppppppiVar5[4] = (int *****)0x0;
        ppppppiVar5[5] = (int *****)0x0;
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd08;
LAB_0001cdfc:
        pppppppiVar14[2] = ppppppiVar10;
        pppppiVar12 = ppppppiVar5[2];
        ppppppiVar10 = (int ******)ppppppiVar5[3];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001ce0c;
LAB_0001cd18:
        pppppiVar12[3] = (int ****)ppppppiVar10;
        ppppppiVar5[2] = (int *****)0x0;
        ppppppiVar5[3] = (int *****)0x0;
        ppppppiVar10 = pppppppiVar14[6];
        ppppppiVar5[2] = (int *****)ppppppiVar10;
        if (pppppppiVar14[7] != (int ******)0x0) goto LAB_0001cd38;
LAB_0001ce2c:
        pppppppiVar14[7] = ppppppiVar5;
      }
      else {
        if (pppppiVar12 == (int *****)0x0) {
          pppppppiVar14[0xe] = ppppppiVar10;
        }
        else {
          pppppiVar12[4] = (int ****)ppppppiVar10;
        }
        pppppiVar12 = ppppppiVar5[4];
        ppppppiVar10 = (int ******)ppppppiVar5[5];
        if (pppppiVar12 != (int *****)0x0) {
LAB_0001ccf0:
          pppppiVar12[5] = (int ****)ppppppiVar10;
          goto LAB_0001ccf4;
        }
        pppppppiVar14[0xf] = ppppppiVar10;
        ppppppiVar5[4] = (int *****)0x0;
        ppppppiVar5[5] = (int *****)0x0;
        pppppiVar12 = ppppppiVar5[3];
        ppppppiVar10 = (int ******)ppppppiVar5[2];
        if (pppppiVar12 == (int *****)0x0) goto LAB_0001cdfc;
LAB_0001cd08:
        pppppiVar12[2] = (int ****)ppppppiVar10;
        pppppiVar12 = ppppppiVar5[2];
        ppppppiVar10 = (int ******)ppppppiVar5[3];
        if (pppppiVar12 != (int *****)0x0) goto LAB_0001cd18;
LAB_0001ce0c:
        pppppppiVar14[3] = ppppppiVar10;
        ppppppiVar5[2] = (int *****)0x0;
        ppppppiVar5[3] = (int *****)0x0;
        ppppppiVar10 = pppppppiVar14[6];
        ppppppiVar5[2] = (int *****)ppppppiVar10;
        if (pppppppiVar14[7] == (int ******)0x0) goto LAB_0001ce2c;
LAB_0001cd38:
        ppppppiVar10[3] = (int *****)ppppppiVar5;
      }
      pcVar32 = *(code **)(pcVar31 + 0x22918);
      pppppppiVar14[6] = ppppppiVar5;
      iVar20 = (*pcVar32)(pppppppiVar25);
    } while (iVar20 == 0);
    uVar15 = 0x11dd;
  }
  else {
    uVar15 = 0x196b;
  }
LAB_0001cd58:
  pppppiVar12 = (int *****)
                (*(code *)**(undefined4 **)(pcVar31 + 0x2264c))
                          (**(undefined4 **)(pcVar31 + 0x22644),
                           *(int *)(pcVar31 + 0x22638) + -0x40a0,uVar15,
                           *(int *)(pcVar31 + 0x22638) + -0x51b8);
LAB_0001cd7c:
  if (*(char *)(pppppiVar12 + 0x14) == '\0') {
LAB_0001cdb0:
    FUN_00020df0(iVar2,unaff_s7);
  }
  *(char *)(ppppppiVar5[0x38] + 0x14) = (char)pppppppiVar14;
  if (uVar29 == 0) {
LAB_0001cd9c:
    FUN_00014600(ppppppiVar5);
  }
  goto LAB_0001cb4c;
}

